Mercurial, ShareSource, hgsvn
Mercurial은 소스 관리 시스템입니다.
OpenSolaris, Java, Mozilla 등이 Mercurial을 사용하고 있거나 사용을 계획하고 있습니다.
Subversion의 svnbook처럼 공개된 책이 있으니 책을 선호하시는 분은 이 책으로 시작하시면 됩니다.
Distributed revision control with Mercurial
CVS나 Subversion의 한가지 장점은 서버 호스팅입니다. SourceForge를 비롯하여 GForge나 Savane을 쓰는 사이트들이 호스팅을 제공하고, Google Code도 Subversion 호스팅을 제공합니다. 그에 비해 Mercurial은 별도의 서버가 필요 없고 개인 홈페이지에도 호스팅할 수 있기는 하지만 SourceForge와 같은 호스팅 사이트가 없는 아쉬움이 있었습니다.
얼마 전에 ShareSource라는 사이트가 Mercurial 호스팅을 제공하기 시작해서, ShareSource를 사용하는 방법을 간단히 적습니다.
1. 사용자 등록을 합니다. 메일 주소로 메일이 오면 확인하면 됩니다.
2. 프로젝트 신청을 합니다. 운영자의 허가가 필요하며 하루나 이틀 걸립니다. 물론 신청할 때 Mercurial을 사용하겠다고 명시해야 합니다.
3. 프로젝트가 만들어지면 Mercurial clone 주소는 http://hg.sharesource.org/clang (여기서 clang은 프로젝트 이름) 같은 형식이 됩니다.
4. 이미 사용하고 있던 Mercurial 저장소가 있다면, hg push http://hg.sharesource.org/clang 처럼 하면 됩니다. (CVSROOT를 묶거나 svnadmin dump를 하거나 svnsync 등을 쓸 필요가 없습니다.) 사용자 이름과 비밀번호를 물어보니 입력하시면 됩니다. (HTTP 인증을 사용합니다.)
사용자 이름과 비밀번호를 입력하지 않으려면 http://username:password@hostname/path 형식을 사용하시면 됩니다.
5. push를 하고 나서는 웹 인터페이스에서 업로드 된 것을 확인하고 다시 로컬로 clone하면 깨끗한 카피가 됩니다. (이게 싫으면 저장소 아래의 .hg/hgrc에서 default path를 직접 고치셔도 됩니다.)
기존에 Subversion 저장소가 있는데 Mercurial로 이전하려 하거나, Subversion 저장소를 계속 쓰면서 Mercurial에 미러를 하려는 경우에는 hgsvn을 사용할 수 있습니다.
미러의 장점으로는 오프라인 작업, quilt와 비슷하지만 버전 관리와 통합되어 더 사용하기 편한 MQ의 사용, 네트워크가 필요없어 빠른 log과 annotate 기능 등이 있겠습니다.
데비안에서는 apt-get install hgsvn으로 설치합니다.
사용방법은 간단합니다. 다만 저장소 변환에 상당한 시간이 걸립니다.
$ hgimportsvn http://llvm.org/svn/llvm-project/cfe/trunk clang
(약간의 출력)
$ cd clang
$ hgpullsvn
(많은 출력)
미러를 하는 경우 cron을 돌릴 수 있습니다. 이 경우 변환된 저장소에 default-push 설정을 잡아주어야 합니다. 물론 hgrc에 비밀번호를 적는 경우 소유자만 읽을 수 있도록 퍼미션을 조정해야 합니다.
$ cat .hg/hgrc
[paths]
default-push = http://username:password@hostname/path
$ crontab -l
30 0 * * * cd $HOME/hgsvn/clang; hgpullsvn >/dev/null; hg push -q
댓글
재미있는
재미있는 개념이로군요. 분산형 소스코드 관리 툴들은 아직 많이 안써 봤는데 언제 한번 해보고 싶네요. +1점 날립니다... :-)
저도 써본적은 없는데 좋아 보이네요.
좀 자세히 알고 싶어서 이리저리 뒤져봤더니 자료가 많이 나오네요.
한국어 입문서
http://www.selenic.com/mercurial/wiki/index.cgi/KoreanTutorial
빨리 시작하기
http://wiki.kldp.org/wiki.php/MercurialQuickStart
각 버전 컨트롤 시스템 비교
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
과거에도 feanor님이 한번 소개해 주셨네요.
http://kldp.org/node/82622
------------------------------
How many legs does a dog have?
------------------------------
How many legs does a dog have?
Mercurial 체험기. 장/단점
빨리 시작하기를 초벌 번역한 suapapa입니다.
wxGlade프로젝트에 한글 po파일을 전달하면서,
wxGlade가 Hg로 관리를 하고 있어 접해 보았는데,
Hg를 사용하면서 느낀 장/단점은 다음과 같습니다.
단점으로는
장점들은 아래와 같습니다. 대부분 분산 저장소에서 오는 장점들이죠.
주로 svn을 많이 사용해 보며 별다른 불편함을 느끼지 못했었는데 이번에 여러 저장소에서 각각 svn으로 작업하던 내용을 합치는 일을 겪다 보니, "Hg 였으면 좋았을 텐데" 라는 생각이 들었습니다.
Tortoise Svn 같은 Hg를 위한 GUI프론트엔드가 존재하면 더 급속도로 대중화 될 것이라 생각하지만, 지금 상황에서도 Hg가 제공하는 분산 서버의 개념은 충분히 매력있으며, 꼭 한번 접해 보시라고 권유드립니다. :)
분산 개발도구로
분산 개발도구로 git도 많이 쓰는 거 같던데(리누스 토발즈가 만들었다는게 진짠가요? 리눅스 커널 관리도구로 git를 쓴다는 얘기도 들은 거 같은데...) 머큐리얼이랑 비교한 자료가 있으면 좋을 거 같네요.
둘 중에 하나 골라서 써보고 싶네요.
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
Darcs 를 잊지 마세요 강력 추천합니다. 매일 애용하고 있지요 ^^
http://darcs.net/
http://wiki.kldp.org/wiki.php/Darcs
임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
댓글 달기