2008년 9월 21일 일요일

Git #0 - git?

  • git - Fast Version Control System

최근 많은 오픈소스 프로젝트들(특히 RoR(Ruby on Rails) 관련 프로젝트들)이 버젼 관리 툴을 git 으로 옮겨갔다는 것을 알게 되었다. RoR 개발 자체가 git 으로 옮겨간 것이 관련 프로젝트들의 이동에 영향을 미쳤던 것 같다.

근래에 새로운 프로젝트를 시작할 계획을 하면서 어떤 버젼 관리 툴을 쓸 것인가 고민 중이었는데, git 이 어떤지 한 번 둘러보기로 했다.

처음 git 이 만들어지고 사용되기 시작했을 때, 별 관심이 가지 않았던 것은 Linux 개발을 염두에 두고 만들어졌을 것이라는 생각이 들었기 때문일 것이다. 아마도 Linux 처럼 큰 규모이고 개발자들이 흩어져 있는 프로젝트를 염두에 두고 작성된 것을 간단한 프로젝트나 문서 관리에 사용하기에는 불필요하게 복잡하지 않을까 했던 것 같다.

Git 은 분산형 버젼 관리 툴이고, 성능에 중점을 두고 개발하였다고 한다. 분산형 버젼 관리에 대해서 한글 블로그 글이 있다.

whiteship.me/1826 와 포함된 링크들이 도움이 될 것이다.

Linus 가 2007년에 Google Talk 에서 한 강연도 git 을 이해하는데 도움이 된다. 다만, CVS(SVN 포함)와 그 사용자들을 무지하게 비난하기 때문에 CVS 나 SVN 사용자들은 기분이 나쁠 수도 있다.

분산형 버젼 관리 툴이라하면 개인 프로젝트에 사용하기에는 다른 툴에 비해 쓰기가 더 불편할 것 같지만 개인 프로젝트의 경우에도 git 이 CVS 나 Subversion 보다 사용하기에 더 간편하다는 느낌이 들었다. CVS 나 Subversion 을 쓸 때는 중앙 저장소를 어떻게 구성해야 할 것인지 먼저 고민을 해야한다. 게다가 프로젝트 디렉토리 이름이라도 바꾸려면 (개인 프로젝트 단계라 할지라도) 성가신 작업을 거치거나 중앙 저장소의 명칭과 불일치한 상태로 작업을 해야한다. 이에 반해 git은 working copy 와 저장소가 함께 있기 때문에 작명 작업을 뒤로 미루거나 후에 이름을 바꾸는 일에 대한 부담이 적다. (물론 개인 프로젝트 단계에 있거나 작은 팀의 경우이다. 공개 되었거나 큰 팀이 작업한다면 중앙 집중형이건 분산형이건 이름을 바꾸지 않는 것이 상책일 것이다.)

팀에서 CVS 대신 git 을 사용하는 것을 검토해 보기로 하였다. 말을 꺼낸 내가 그 일을 맡게 되었다. 아마도 몇 개의 git 사용에 관한 글을 더 쓰게 될 것 같다.

댓글 없음: