๐ก trunk, branch, merge
trunk ?
์์ค์ ์ฃผ ๊ฐ๋ฐ ์์ ์ ์งํํ๋ ํด๋
branch ?
์์ค์ ํ์ฌ ๋ฒ์ ์ ์ ์ง๋ณด์ํ๊ณ , ํ์ฌ ๋ฒ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ฐจ๊ธฐ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ํด๋
merge ?
branch ์์ค ๊ฐ๋ฐ์ด ์๋ฃ๊ฐ ๋๋ฉด trunk๋ ๋ค๋ฅธ branch์ ํฉ์น๋ ์์
๋จผ์ ํ๋ก์ ํธ ํด๋๋ฅผ SVN Checkout ๋ฐ๋๋ค.
์ฐ๋ฆฌ๋ ๋๋ถ๋ถ trunk ์์น๊น์ง Checkout ๋ฐ์ ๋์ผ๋ก ํ์ธํ ์ ์์์ง๋ง, ํ๋ก์ ํธ ํด๋ ํ์์๋ ์๋์ ๊ฐ์ด ์ธ ๊ฐ์ ํด๋๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
trunk ํด๋ ๋ง์ฐ์ค ์ฐํด๋ฆญ > TortoiseSVN > Branch/tag
To Path ์
๋ ฅ ์นธ ์ฐ์ธก์ ...
์ ํด๋ฆญํด์ค๋ค.
๊ทธ๋ฌ๋ฉด ์ฐฝ์ด ํ๋ ๋จ๋๋ฐ, URL ์
๋ ฅ ์นธ์ branches ํด๋ ํ์์ ์์ ์ด ์์ฑํ branch์ ์ด๋ฆ์ ์ ๊ณ OK ๋ฒํผ์ ํด๋ฆญํ๋ค. Ex) ~/branches/gwpark
๋ค์ ๋ฉ์ธ ์ฐฝ์ผ๋ก ๋์์ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ , ๋ณต์ฌํ repository revision์ ๊ฒฐ์ ํ๋ค.
๊ทธ ๋ค์, SVN Update ํด์ฃผ๋ฉด ์๋์ ๊ฐ์ด trunk ํ์ ํด๋ ๋ฐ ํ์ผ๋ค์ด ๋ชจ๋ copy ๋์ด ์์ฑํ branch ํ์์ ์ถ๊ฐ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
IDE์์ branch ์์ค ์์ ์์ ์ ๋ง์น๊ณ , ์์ ๋ด์ฉ์ commit ํ๋ค.
merge ์์ ์ด์ ์๋ ๋ฐ๋์ trunk์ branch ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ ์์ด commit ๋ ์ํ์ฌ์ผ ํ๋ค.
TortoiseSVN > Merge..
Merge type์ ์ ํํ๋ ๋จ๊ณ๋ค. ์ด๋ ์๋ ๋ด์ฉ์ ์ฐธ๊ณ ํด์ ์ ํํ๋ฉด ๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ Merge two different trees ํ์
์ผ๋ก ์ง์ ํ๋ฉด ๋ ๊ฒ์ด๋ค.
๐ก merge type !!
- Merge a range of revisions
branch ์์ค๋ฅผ ์์ ํ๊ณ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ๋ค๋ฅธ branch(ํน์ trunk)๋ก ์ด์ํ๋ ๊ฒฝ์ฐ
[FROM] branch A์ revision 1 [TO] branch A์ revision 7 ๋ก ์ก์๋ค๊ณ ๊ฐ์ โ branch A์ revision 1~7๊น์ง์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค๋ฅธ brunch๋ trunk์ merge
- Merge two different trees
branch์์ ์์ ๋ ์์ค๋ฅผ trunk์ ๋์ผํ๊ฒ ์ ์ฉํ๋ ๊ฒฝ์ฐ
[FROM] trunk์ Head revision [TO] branch์ Head revision โ trunk์ ์ต์ข ๋ฒ์ ๊ณผ branch์ ์ต์ข ๋ฒ์ ์ merge
From URL - trunk ํด๋ ์์น, To URL - branch ํด๋ ์์น๋ก ์ก๊ณ mergeํ๊ณ ์ ํ๋ ๊ฐ๊ฐ์ revision์ ์ ํํ๋ค.
์๋ ์ฐฝ์ merge์ ์ต์
์ ์ ํํ๋ ๋จ๊ณ์ธ๋ฐ, ๋ณ๋์ ์ต์
์ ํ์ด ํ์ ์์ ๊ฒ์ด๋ฏ๋ก ์๋ Merge ๋ฒํผ์ ํด๋ฆญํด merge๋ฅผ ์งํํ๋ค.
merge ์์
์ด ์๋์ ๊ฐ์ด ์๋ฃ๋์๋ค.
trunk ์์ค๋ฅผ ์ดํด๋ดค์ ๋, branch์์ ์์ ํ๋ ๋ด์ฉ์ด ๋์ผํ๊ฒ ์ ์ฉ๋ ๊ฒ์ ํ์ธํ๋ค๋ฉด ์ฑ๊ณต์ ์ผ๋ก merge๊ฐ ์ด๋ฃจ์ด์ง ๊ฒ์ด๋ค.
์ต์ข ์ ์ผ๋ก, merge๊ฐ ์๋ฃ๋ trunk ์์ค๋ฅผ commitํ์ฌ SVN ์๋ฒ์ ๋ฐ์ํด์ค๋ค.
IntelliJ์์๋ branching, merging๊ณผ ๊ฐ์ ์์ ๋ค์ด ๊ฐ๋ฅํ๋ค.
ํ๋ก์ ํธ ์ฐํด๋ฆญ > Subversion > Branch or Tag
โข Base URL : SVN ์๋ฒ์์ ๋ธ๋์น๋ฅผ ์ ์ฅํ ๊ฒฝ๋ก
โข Name : ๋ธ๋์น๋ช
์๋จ SVN > Update Project์์ branch ํ๋ก์ ํธ๋ก ๋ค์ด๊ฐ๋ค.
์์ค ์์ ํ commitํ๋ฉด SVN ์๋ฒ์ ํด๋น branch์์๋ง ์์ค๊ฐ ๋ณ๊ฒฝ๋๋ค.
๋ค์ SVN > Update Project์์ trunk ํ๋ก์ ํธ๋ก ๋ค์ด๊ฐ๋ค.
ํ๋ก์ ํธ ์ฐํด๋ฆญ > Subversion > Integrate Directory ํด๋ฆญํด์ ์์ ์์
ํ branch๋ฅผ trunk๋ก ๋ณํฉํ๋ค.
trunk ์์ค๋ฅผ SVN ์๋ฒ์ commit ํ๋ค.
Eclipse ์์์ branch ํ๋ก์ ํธ์ trunk ํ๋ก์ ํธ ๊ฐ์ ์์ค ๊ด๋ฆฌ ๋ฐฉ์์๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค. ์ฒซ ๋ฒ์งธ๋ก branch๋ฅผ ์์ฑ๋ง ํ๊ณ trunk ํ๋ก์ ํธ์ branch ํ๋ก์ ํธ๋ฅผ ์๋ก Switch ์์ผ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด ์๊ณ , ๋ ๋ฒ์งธ๋ก branch ํ๋ก์ ํธ๋ฅผ ์๋ก checkout ๋ฐ์ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด ์๋ค.
์ผ๋จ branch ์์ฑ ๊ณผ์ ์ ์ด์ ๊ด๊ณ ์์ด ๋์ผํ๊ฒ ์งํํ๋ค.
branch๋ฅผ ์์ฑํ ํ๋ก์ ํธ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ํด๋ฆญ > Team > Branch
์์ฑํ branch๋ช
์ ์
๋ ฅํ๊ณ , copy ๋ฐฉ๋ฒ์ ์ ํํ์ฌ ์๋ก์ด branch๋ฅผ ์์ฑํ๋ค.
Use the working copy as it is : ํด๋น Local์ ํ๋ก์ ํธ ์์ค๋ก branch ์์ฑ
Use the repository version : SVN ๋ฒ์ ์ค์ ์ ํํด branch ์์ฑ
์ฌ๊ธฐ์๋ถํฐ ๊ด๋ฆฌ ๋ฐฉ์์ ๋ฐ๋ผ ์ ๊ฐ ๊ณผ์ ์ด ๋ฌ๋ผ์ง๋ค.
branch๋ฅผ ์์ฑํ ํ๋ก์ ํธ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ํด๋ฆญ > Team > Switch
URL์ ์์ฑํ branch ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์
๋ ฅํ๋ค.
Switch ์์
์ด ์๋ฃ๋๋ฉด ์๋์ ๊ฐ์ด branch ํ๋ก์ ํธ๋ก ๋ฐ๋๊ฒ ๋๋ค.
branch ํ๋ก์ ํธ์์ ํ์ํ ์์ ์ ์งํํ๋ค.
branch์ ์์ค ์ฝ๋๋ฅผ ์์ ํ์ผ๋ฉด commitํ์ฌ branch๋ณ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค. ๋ง์ฝ commitํ์ง ์๋ ๊ฒฝ์ฐ ์์น ์๋ ๋ด์ฉ์ด trunk ์์ค์ ์ ์ฉ๋ ์ ์๋ค. ์ด ์ ์ ๋ฐ๋์ ์ ์ํ์.
branch ํ๋ก์ ํธ์ ์์ค ์์ ์ด ์๋ฃ๋์๋ค๋ฉด, ํ๋ก์ ํธ๋ฅผ trunk๋ก ๋ณ๊ฒฝํ๋ค.
ํ๋ก์ ํธ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ํด๋ฆญ > Team > Merge
URL์ mergeํ๊ณ ์ ํ๋ branch์ ์ฃผ์๋ฅผ ์
๋ ฅํ๊ณ OK ๋ฒํผ์ ํด๋ฆญํ๋ค.
branch์์ ๋ณ๊ฒฝ๋ ๋ด์ญ์ด ์๋์ ๊ฐ์ด ํ์๋๊ณ , ์์ ๋ ์ฝ๋๋ฅผ ํ์ธํ๊ณ ์ถ๋ค๋ฉด ํด๋น ํ์ผ์ ํด๋ฆญํ์ฌ ๋ณผ ์ ์๋ค.
์ถฉ๋์ด ๋ฐ์ํ ํ์ผ์ Override and Update ํด์ค ๊ธฐ์กด์ trunk ์์ค๋ฅผ branch ์์ค๋ก ๋ฎ์ด ์์์ฃผ๊ฑฐ๋ ์ฝ๋๋ฅผ ์๋ง๊ฒ ์์ ํ๊ณ resolve ์ํจ ํ ์งํํ๋ฉด ์ ์์ ์ผ๋ก ๋ณํฉ์ด ์๋ฃ๋๋ค.
SVN Reposiotry๋ฅผ refresh ์ํจ ํ ํ์ธํด๋ณด๋ฉด branches ํ์์ ์์ฑํ branch๊ฐ ์๊ฒจ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์๋์ ๊ฐ์ด branch ํ๋ก์ ํธ๊ฐ Project Explorer ํญ์ ๋ํ๋๊ณ , ์ ์ฅ ์์ญ์ด
๋ค๋ฅธ ๊ฒ์ ํ์ธํ ์ ์๋ค.
branch ํ๋ก์ ํธ์์ ํ์ํ ์์ ์ ์งํํ๊ณ commitํ๋ค.
์ด ๋, trunk ํ๋ก์ ํธ์๋ ๋ณ๊ฐ๋ก branch ์์ญ์ commit์ด ๋๋ค. ํ์ง๋ง ๊ฐ์ ํ๋ก์ ํธ์ฒ๋ผ revision์ด ์ด์ด์ ์ฌ๋ผ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ดํ์ merge ์์ ์ ๊ฐ ๊ณผ์ ์ Switch ๋ฐฉ์๊ณผ ๋์ผํ๋ค. (Switch 6๋ฒ๋ถํฐ ์ฐธ๊ณ )