예전에 github를 소개하면서 분산형 버전 콘트롤 시스템(DVCS)에 대해 이야기한 적이 있다.
DVCS는 peer-to-peer 개발 방식을 도입하여 언제든지 소스 코드가 외부로 복제(Clone)해 나가서 직접 개발하다가 변경 코드를 쉽게 보내(pull) 합칠 수 있는 장점이 있다.
리눅스와 모질라 처럼 모듈로 구성된 대형 프로젝트의 경우 checkout/checkin에 드는 비용이 높다. 또한, 오프라인 상태라도 개발자가 언제라도 개발할 수 있다.
이중에 git, bazzar, mercurial 같은 것들이 있고, 최근 대형 오픈 소스 프로젝트 위주로 기존의 CVS 혹은 SubVersion에서 분산형 VCS로 옮겨가고 있는 곳이 많다.
이런 와중에 구글판 소스포지인 구글 코드 프로젝트 호스팅에서 기존 SubVersion과 함께 Mercurial을 추가 지원하기로 했다고 한다.
구글 코드 프로젝트 호스팅은 오픈 소스 소프트웨어 개발에 필요한 문서화 도구(위키), 배포(다운로드), 버그트래킹(이슈), 소스 콘트롤를 제공해 주고 있다.
안드로이드, 크롬 같은 중요한 구글 내 오픈 소스 프로젝트들이 여기에서 제공되고 있다. 기존 포지류 보다 심플하고 간편한 사용 때문에 최근에 이용하는 사람들이 많아졌다.
구글이 여러 DVCS 중 Mercurial을 선택하게 된 이유는 먼저 기존 SubVersion 사용자들이 Mercurial로 이전하기 쉽다는 점을 꼽았다. 실제로 명령어도 비슷하다.
회사에서 Subversion을 쓰고 있었기 때문에 Mercurial로 갈아 타는데 큰 어려움은 없었다. 원격 레포지터리와 내 레포지터리 사이의 clone/pull/push 작업만 더 있을 뿐 다른 부분은 크게 다르지 않다.
두번째는 http로 거의 모든 정보를 제공하고 있다는 점이다. change set, 파일 정보, commit 로그 등 다양한 정보를 웹으로 볼 수 있다.
기존에 CVS를 이용했던 Mozilla 프로젝트에서는 Bonsai나 LXR 같은 별도 소프트웨어로 관련 정보를 제공 해야만 했다. 이에 Mozilla에서는 2007년 4월부터 메인 소스 트리에서 Mercurial로 이전 했었고, 지역화(L10n) 트리는 3.5(구 3.1) 개발 시점인 작년 8월 부터 사용하고 있다.
아직 Firefox 3.x는 CVS, Mozilla 공식 홈페이지나 부가 기능은 SubVersion, 3.5 소스 및 L10n 트리는 Mercurial을 쓰고 있어 아직 세 가지를 다 써야 하긴 하다만…
구글이 git를 쓸 것인지 mercurial을 쓸 건지 고민했던 문서를 보면, 구현에 드는 비용 및 사용 편의성에서 mercurial이 조금 더 낫다는 점을 인정하고 있다.
유행이라고 함부로 버전 콘트롤을 자주 바꾸는 건 좋지 않다. 각 회사나 프로젝트의 개발 문화에 적합한 걸 써 주는 게 제일 좋다.
※ Disclaimer- 본 글은 개인적인 의견일 뿐 제가 재직했거나 하고 있는 기업의 공식 입장을 대변하거나 그 의견을 반영하는 것이 아닙니다. 사실 확인 및 개인 투자의 판단에 대해서는 독자 개인의 책임에 있으며, 상업적 활용 및 뉴스 매체의 인용 역시 금지함을 양해해 주시기 바랍니다. 본 채널은 광고를 비롯 어떠한 수익도 창출하지 않습니다. (The opinions expressed here are my own and do not necessarily represent those of current or past employers. Please note that you are solely responsible for your judgment on checking facts for your investments and prohibit your citations as commercial content or news sources. This channel does not monetize via any advertising.)
구글 프로젝트 호스팅에서 Mercurial 채택! 지난 WoC에서 프로젝트를 진행하면서 Git을 사용했는데 구글에서는 Git과 Mercurial을 고민하다가 Mercurial을 선택했다고 하네요. 좀 더 좋다는거 같은데 어떤지 한번 써봐야겠습니다!
갑자기 버전 컨트롤 시스템들이 부쩍 늘어나거나 이전들을 많이 하네요.
제가 참여(?)하고 있는 프로젝트들 중 일부도 갑자기 git 로 넘어가질 않나.. svn 으로 넘어 온지도 얼마 안되었는데..
정작 크롬과 안드로이드는 구글코드에 대문 페이지만 좀 끄적거렸을 뿐 소스는 따로 호스팅하고 있다는 것. 안드로이드는 게다가 (리눅스 커널 해킹이 필요하기 때문이겠지만) git을 쓰죠. 결국 대세에 맞춰 git도 지원할 거예요.