구글 코드 호스팅, Mercurial 채택

예전에 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이 조금 더 낫다는 점을 인정하고 있다.

유행이라고 함부로 버전 콘트롤을 자주 바꾸는 건 좋지 않다. 각 회사나 프로젝트의 개발 문화에 적합한 걸 써 주는 게 제일 좋다.

여러분의 생각

  1. 갑자기 버전 컨트롤 시스템들이 부쩍 늘어나거나 이전들을 많이 하네요.
    제가 참여(?)하고 있는 프로젝트들 중 일부도 갑자기 git 로 넘어가질 않나.. svn 으로 넘어 온지도 얼마 안되었는데..

  2. 정작 크롬과 안드로이드는 구글코드에 대문 페이지만 좀 끄적거렸을 뿐 소스는 따로 호스팅하고 있다는 것. 안드로이드는 게다가 (리눅스 커널 해킹이 필요하기 때문이겠지만) git을 쓰죠. 결국 대세에 맞춰 git도 지원할 거예요.

의견 쓰기

이름* 이메일* 홈페이지(선택)