> 2011๋
10์ 17์ผ ์คํ 7:11, Sungchul Park <gyu...@gmail.com
> <mailto:gyu...@gmail.com>>๋์ ๋ง:
>
> ๋งค๋ฒ ์ปค๋ฐ๊ณผ ํธ์๋ฅผ ํ๋ ํจํด์ด์๋ผ๋ฉด ๊ตณ์ด SVN์์ Hg๋ก ๊ฐ์ํ์ค ์ด
> ์ ๊ฐ ์์ด ๋ณด์
๋๋ค.
>
> ์๊ท๋ชจ ํ์ด ๋ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ํ์์ ์์
ํ์ ๋ค๋ฉด SVN๊ฐ์ ์ค
> ์ ์ง์ค์ SCM์์ Hg๊ฐ์ ๋ถ์ฐ SCM์ผ๋ก ๊ฐ์ ํ๋ฉด์ ์ป๋ ์ ์ต์ด ๊ฑฐ์
> ์๊ณ ์ง๊ธ ๋ง์ํ์ ๊ฒ ๊ฐ์ ๋ถํธํจ(?)์ด ๋ํ ๊ฒ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก git
> ๋ณด๋ค๋ hg๊ฐ ์ตํ๊ธฐ ์ฝ๋ค๊ณ ์๊ฐํ์ง๋ง ์๋ฌด๋๋ SVN์ ๋นํ๋ฉด ๋ ๋ค
> ๋ณต์กํ๊ธฐ๋ ๋ง์ฐฎ๊ฐ์ง์ฃ .
>
> ๋ค๋ง
>
> * ์คํ๋ผ์ธ์์ ์ผํ๋ ๋๊ฐ ๋ง๊ณ
> * ๋๊ท๋ชจ ์์ค ํธ๋ฆฌ๋ฅผ ์ฌ๋ฌ ๋ชจ๋๋ก ๋๋ ๋ถ์ฐ๋ ํ์ด ์์
ํ๋ ๊ฒฝ์ฐ
์ด ๊ฒฝ์ฐ๊ฐ ์ ํฌํ์์๋ ์ ํ ํด๋น๋์ง ์์ต๋๋ค. ์์ ์ ์ค๋ก์ง ํ์ฌ์์ ๋ง ์ด๋ฃจ์ด์ง๋๋ค.๊ทธ๋ ๋ค๋ฉด ์ค๊ณ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฑด ์๋๊น์?
๋ ๋ชจ๋๋จ์๋ก ๋๋์ด์ ธ ์์ง ์๊ณ ์๋ก๊ฐ ๊ฐ์ ํด๋์ค๋ฅผ ์์ ํ ํ๋ฅ ์ด ์ ๋นํ ๋์ต๋๋ค.
commitํ ๋ฐ๋ก push๋ฅผ ํ๋ ์ด์ ๊ฐ commit์ ๋ชจ์๋๋ค๊ฐ push๋ฅผ ํ๋ค๊ฐ๋ ๋ค๋ฅธ ์ฌ๋์ด ์์ ํ ๋ถ๋ถ๊ณผ ์ถฉ๋์ด ๋ฐ์๋์ merge์ง์ฅ์ด ํผ์ณ์ง๋๋ค. merge๊ฒฐ๊ณผ๊ฐ ๋ง์์ ์๋๋ ๊ฒ์ด ์๋๋ผ ๊ฐ์ ํด๋์ค๋ฅผ ์์ ํ ๊ฒฝ์ฐ ์ ๊ฐ ๋ณด๊ธฐ์ ์ถฉ๋ถํ ์๋ merge๊ฐ ๊ฐ๋ฅํ ์ํฉ์ธ๋ฐ conflict๋ฅผ ๋ด๋ฒ๋ฆฝ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋ณ์๋ ํด๋์ค์ด๋ฆ renameํ๋ฒ ํ๋ ๊ฒ๋ ๋๋จํ ์ผ์ด ๋์ด ๋ฒ๋ฆฝ๋๋ค.
ํ ํด๋์ค๊ฐ ๋๋ฌด ๋ง์ ๊ธฐ๋ฅ์ ํ๋ค๊ฑฐ๋ ์ ์ฒด์ฑ์ ๊ฐ์ง ๋ชปํ๊ณ ๋ฒ์ฉ์ผ๋ก ์ฌ์ฉ ๋๋ค๊ฑฐ๋ ํ๋ ์ํฉ ๋ง์ ๋๋ค.
๊ฐ ํด๋์ค๊ฐ ๊ธฐ๋ฅ๋ณ๋ก ์ฑ ์์ด ๋ช ํํ ๋ถ์ฌ๋ผ ์๋ค๋ฉด ๋ฉฐ์น ์ปค๋ฐ ์ ํ๊ฑฐ๋ ํ ๋ ์ฃผ ๋ธ๋์น ๋๋ค ๋ค์ ๋จธ์งํ๋๋ผ๋ ์ง์ฅ์ ๊ฒฝํํ๋ ์ผ ๋ฐ์๋ ๊ฑฐ์ ์ผ์ด ๋์ง ์์ต๋๋ค. ๋งค๋ฒ ์ปค๋ฐํ ๋ ๋ง๋ค ๋จธ์ง ์ถฉ๋์ด ๊ฑฑ์ ๋๋ค๋ฉด ์ด๊ฑด SCM์ ๋ฌธ ์ ๊ฐ ์๋๋ผ ์ค๊ณ ๋ฌธ์ ๋ก ๋ณด์ฌ์ง๋ค์.
์ ๋ ํ์ฌ์์ 2๋
์ ๋ถํฐ git ์ ์ ํํ๊ณ ์๊ณ ๋๊ท๋ชจ ํ๋ก์ ํธ(100๋ช
์ด์์ ๊ฐ๋ฐ์)๋ฅผ git ์ ํตํด์ ๋ ๋ฒ์งธ
์งํํ๊ณ ์์ต๋๋ค. ๊ทธ ์ ์๋ 4๋
์ ๋ clearcase ๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. mercurial๊ณผ git์ด ๋ค๋ฅด๊ธฐ๋ ํ์ง๋ง
DVCS ๊ด์ ์์ ์ ํ๋๊ป์ ๋ง์์ฃผ์ ์ฌํญ์ ์ค์ฌ์ผ๋ก ๋ช ๊ฐ์ง ์ ์๊ฐ์ ๋ง์๋๋ฆด๊น ํฉ๋๋ค.
=== commit ๋ง๋ค๊ณ remote ๋ก push ๋ ํด์ผํ๋๊ฒ ๋ฒ๊ฑฐ๋กญ๋ค. ===
alias ์ ๊ฐ์ ๊ฒ์ผ๋ก ๋ ๋จ๊ณ๋ฅผ ํ ๋จ๊ณ๋ก ํฉ์ณ์ ํ ์ ์์๊ฒ ๊ฐ์ต๋๋ค. ์ค์ git ์์๋ ๊ทธ๋ ๊ฒ ์ฌ์ฉํ์๋ ๋ถ๋ค์ด
์ข
์ข
๊ณ์๊ณ , svn ๋ช
๋ น์ด๋ก ๋์ฒดํด์ ์ฌ์ฉํ์๋ ๋ถ๋ค๋ ๊ณ์ญ๋๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ์ด์ ๋ณด๋ค ํ ๋จ๊ณ๊ฐ ๋ ์๋ค๋ ๊ฒ์ ์์ ํ ๋ฐ์ํ๊ธฐ ์ ์ 'ํ๋ฒ ๋ ๋ณด๋ ๊ธฐํ'๋ก ์ผ์์ ์์
ํ ์๋ ์๊ณ , ์
๊ฒฝ์ฐ ์ค์ ์ฃผ์๊น๊ฒ ๋ณด๋๋ฐ ์ฌ์ฉํ๊ธฐ๋ ํฉ๋๋ค. ๋ํ ์ด ๋จ๊ณ์์ ํด๋ณผ ์ ์๋ ๊ธฐ๋ฅ๋ค๋ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ํด์
ํน์ฑ์ด๋ผ ์๊ฐํ๋ฉด์ ๊ทธ ํน์ฑ์ด ๊ฐ์ง๋ ๊ธ์ ์ ์ธ ๋ฉด๋ ์์
ํ์๋ฉด์ ์ฐพ์๋ณด์๋ฉด ์ด๋จ๊น ํฉ๋๋ค.
=== commit ํ๊ธฐ ์ ์ pull ์ํ๋ฉด conflict ์ด ์์ฃผ ๋ฐ์ํ๋ค. ===
๋ด๊ฐ A๋ผ๋ ์์ ์ ์์ค๋ฅผ ๋ฐ์์ ์์
ํ๊ณ B๋ผ๋ ์์ ์ ์ฌ๋ฆฌ๊ธฐ ์ ์ remote ์ ์ต์ ๋ฒ์ ์ ๋ฐ์์์ผ ๋ ๋ฌธ์ ๊ฐ ์๊ธฐ๋
๊ฒ์ ๋ง์ต๋๋ค. ํ์ง๋ง ๋ค๋ฅธ SVC๋ ์
๋ฐ์ดํธ์ ๋ํ ๋ถ๋ด๊ฐ์ด ์๋ ๊ฒ์ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ต์ํจ์ ์ฐจ์ด๋๋ฌธ์ ๋ ๋ถ๊ฐ๋๋
๋ฉด์ด ์์ง ์์๊น์?
๋๋ถ์ด conflict ์ด ํนํ ์์ฃผ ๋ฐ์ํ๋ ๊ณณ์ด ์์๊ฒ์ผ๋ก ์๊ฐํฉ๋๋ค. ์ด ๋ถ๋ถ๋ค์ ์ฐพ์๋ณด์๊ณ (์. merge ์ปค๋ฐ์
conflict ํ์ผ๋ค์ ํต๊ณ๋ธ๋ค) ๋์ผ ๋ถ๋ถ์ ์์ฃผ conflict ์ ๋ด๋ ๋ถ๋ค๊ณผ ํจ๊ป ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด์๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ ๋ถ์ด ๊ทธ๊ณณ์ ๋ด๋นํด์ ์์
ํ๋๊ฐ, remote ์ ์ฌ๋ฆฌ๊ธฐ ์ ์ ์ด ๋ถ๋ค๋ผ๋ฆฌ merge๋ฅผ ํ๋ค๋๊ฐ (์ผ์ข
์
moderator)ํ๋ ํ์์ผ๋ก ๋๊ฐ ํํผ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ค์ ์๋
์ 100๋ช
๋๊ฒ ๊ฐ์ด ํ ํ๋ก์ ํธ์์ ์ด๋ฌํ ๋ฐฉ๋ฒ์ผ๋ก ๊ด์ฐฎ์ ํจ๊ณผ๋ฅผ ๋ดค์ต๋๋ค. ์ด๋ฌํ ๋ถ๋ถ์ ์ด๋ ๊ฒ๋ ์๊ฐํด๋ณผ ์
์์ต๋๋ค. '์์ฃผ ์
๋ฐ์ดํธ ๋๋ ๋ถ๋ถ์ ๋ํด์ ๋ ๋ง์ด ์ด์ผ๊ธฐ๋ฅผ ํ๊ณ , ๋ ๋ง์ด ์ ๊ฒฝ์ ์จ๋ผ.' ์ด๋ ๊ฒ ์๊ฐํ๋ ๊ตฌ์กฐ์ ์ผ๋ก
๋ณ๊ฒฝ์ ์๋ํ๊ณ , ํ์
์ ์์ด์ ๋ ๋ง์ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ๋ชจ์ต์ ๋ณธ ์ ์ด ์์ต๋๋ค.
=== ์ ๊ฐ ์๊ฐํ๋ DVCS ๋ช ๊ฐ์ง ์ฅ์ ===
๋ธ๋์น ์์
์์ ๋๋ ๋น์ฉ(๋ง๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ, ์ฐจ์งํ๋ ๊ณต๊ฐ ๋ฑ)์ด ๋น๊ต์ ์ ๋ค๋ณด๋ ํ ํฝ ๋ธ๋์น๋ฅผ ๊ณผ๊ฑฐ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ด
์ฌ์ฉํ๊ฒ ๋๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ์ข ๋ ๋ค์ํ ์๋์ ์ธ ์์
๋ ํ๊ฒ๋ฉ๋๋ค. ๊ณผ๊ฑฐ clearcase ๋ฅผ ์ผ์๋๋ ๋ธ๋์น
๋ง๋๋ ์๊ฐ์ด ๊ฝค ๊ฑธ๋ ค์ ๋ธ๋์น๋ฅผ ์ ๊ฒ ๋ง๋ค์ด์ ์์
์ ํ์์ต๋๋ค. ๋งค ์์
์ ์ฐ์ต์ฅ์ด ๋ช ์ฅ ๋ ์๊ฒผ๋ค๋ ๋น์ ๋ก ํํ์
ํด๋ณด๋ฉด ์ข์๊ฒ ๊ฐ์ต๋๋ค. ๋ง์์ ์์ ๊ฐ์ด ์๊น๋๋ค. ๋ธ๋์น ์์ฑ๊ณผ ์๋ฉธ์ด ๊ฐ๋จํฉ๋๋ค.
๋ ํ๋๋ฅผ ๊ผฝ์๋ฉด ์๊ท๋ชจ ํ์
์์ ๋ฐ๋ก ์๋ฒ๋ฅผ ๋ง๋ค์ง ์๊ณ ๋ ์๋ก remote ๊ฐ ๋์ด์ ์์
์ด ๊ฐ๋ฅํ๋ค๋ ์ด์ ์ด ์์ต๋๋ค.
์ด๋ฅผํ
๋ฉด ์ ๊ฐ A๋ผ๋ ๋ถ๊ณผ ์์
ํ ๋ ๊ฐ๋์ ๊ทธ ๋ถ์ ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๊ณต์ ํด๋๋ก ๋ง๋ค์ด์ ๊ทธ ๊ณณ์ผ๋ก ๋ฐ๋ก push/pull์
ํด์ ์์
์ ํ์ต๋๋ค. ๋ฏธ๊ตญ ์ถ์ฅ์์๋ ํ ํ์ฌ ๊ฐ๋ฐ์๊ฐ USB์ ์์ ์ ์ ์ฅ์๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํด์ ์ ๊ฒ ๊ฑด๋ค์คฌ๋๋ฐ ์ ๋ก์ปฌ์์
๋ฐ๋ก fetch ํด์ ์ฌ์ฉํ ์ ์์์ต๋๋ค. ๋ ์ฌ๋ก ๋ชจ๋ ์๋นํ ๊ฐ๋จํ๊ณ ๋น ๋ฆ
๋๋ค.
๋ง์ฝ ์ด๋ ๊ฒ ํ๋ค๊ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๊ทธ๋ฅ ๋ก์ปฌ์ ๋ฐ์๋์ ์ ์ฅ์๋ฅผ ์ง์๋ฒ๋ฆฌ๊ณ ๋ค์ ๋ฐ์ผ๋ฉด ๋ฉ๋๋ค. ์ค์ ๋ ๋น๊ต์ ๊ฐ๋จํ๊ณ ๋ฐ๋
์๋๋ ๋์์ง ์์ ์์ค์
๋๋ค.
=== ๊ธฐํ ===
๋ช ๊ฐ์ง ์๋์ ๊ฐ์ ๊ฒ๋ค๋ ์๊ฐ์ด ๋์ ์ ์ด๋ด
๋๋ค.
- configuration ์ ๋
ํนํ๊ฒ ๋ง์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์๋ฉด git config ๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ์
๊ฐ๊ฐ์ธ์ด ๋๋ผ๋ ํธ์ฐจ๊ฐ ๊ฝค ์ปธ์ต๋๋ค. merge ํด์ ๋ํ ์ธํ
, binary ํ์ผ์ ์ฒ๋ฆฌ, merge ์์ ์ด๋ค ๊ฒ์
์ฐ์ ์ํ๋๊ฐ ๋ฑ ์ด๋ฌํ config ๊ฐ mercurial ์ ์ด๋ป๊ฒ ์กด์ฌํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ด๋ฌํ ์ค์ ๊ฐ์ ๋ํด์ ์์๋ณด์๋ฉด
๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
- DVCS๋ฅผ server - client ํํ๋ก ์ฌ์ฉํ์๋๊ฒ ๊ฐ์ต๋๋ค. git์์๋ ์ด๋ ์๊ฐ๋ณด๋ค server ์ ์คํ์ด
์ค์ํ์ต๋๋ค. ์ฐ์ฐ์ด ์๋นํ ๋ง์์ cpu๋ memory์ ์ ์จ์ด ์๋นํ ๋์์ง๋ ๊ฒ์ ๋ณผ ์ ์์์ต๋๋ค. ํฐ๋ฌด๋ ์์ด ๋๋ฆฐ
๊ฒฝํ์ด ์์ผ์
จ๋ค๋ฉด server ๊ฒฉ์ด ๋๋ remote ์ resource ๋ฅผ ํ์ธํด ๋ณด์๋ ๊ฒ๋ ์ข๊ฒ ์ต๋๋ค.
Git ํํ์ด์ง์ ๊ฐ๋ฉด ์๋์ ๊ฐ์ ์๊ฐ๊ฐ ์์ต๋๋ค.
'Git is a free & open source, distributed version control system
designed to handle everything from small to very large projects with
speed and efficiency.'
์ ๋ ๊ฒฝํ์ ์ผ๋ก ์ด ๋ง์ด ๋ง๋ค๋ ๊ฒ์ ์ฒดํํ์ต๋๋ค. ์๊ท๋ชจ๋ถํฐ ๋๊ท๋ชจ๊น์ง, ๊ทธ๋ฆฌ๊ณ peep-to-peer ๋ถํฐ
server-client ๊น์ง ๋ชจ๋ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค๋ง ์ฐ๋ ค์ค๋ฌ์ด์ ์ SVN๋ณด๋ค ํ์ต๊ณก์ ์ด ์๋นํ ์ข์ง ์๋ค๋
๊ฒ์
๋๋ค. ์ด ๋ถ๋ถ์ ์๊ฐ๊ณผ ์ ๋นํ ๊ต์ก์ผ๋ก ๋ณด์ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. (๋ฌผ๋ก ์ด ์์
์ ์๋นํ ์ด๋ ต์ต๋๋ค.)
์ฌ์ฉํ์๋ mercurial์ด ์ ๊ฐ ์ ํ git๊ณผ ๋ค๋ฅธ์ ์ด ์์ด์ ์ด ๊ธ์ด ๋์์ด ๋์ค๋ฐ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์กฐ๊ธ์ด๋๋ง ๋์์ด
๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฌ๋ฏธ์๋ DVCS ์ถ ๋์๊ธฐ๋ฅผ ๋ฐ๋ผ๊ฒ ์ต๋๋ค.
2011/10/17 ๊น์ ํ <won...@gmail.com>:
--
SangHee Kim
http://goo.gl/LnpDX
๋ฐ๋ฉด์ ๋ถํธํ๋ ์ ์ ๊ฝค ๋ช
ํํ๋ฐ, SVN ์ผ๋ก ๋ฏธ๋ฌ๋งํ๋ ๋ถ๋ถ์ด์์ด์. ๋ช๊ฐ์ง ๋๊ตฌ๋ค์ด ์์ง๋ง ๊ตณ์ด git ์ ๋น๊ตํ์ง ์์
๋ ์ ๋์ ์ผ๋ก ํ์ฉ์ฑ์ด ๋จ์ด์ง๋๋ค.