SVN만 이용하면 로컬 수정내용의 저장이 불가능하다.
물론 컴파일이 되는 것을 확인하고 커밋을 조금씩 하면 되지 않느냐고 말할 수 있지만,
그 잦은 커밋과 업데이트 사이의 시간낭비를 생각하면 상당히 비효율적일 수 있다.
그래서 SVN을 DVCS로 pull해서 로컬로 수정하고 push하면 되겠다는 생각을 했고,
사용할 소프트웨어 후보로 잘나간다는 Git과 Mercurial, Bazaar를 검색했다.
그리고 Git과 Mercurial로 후보를 좁혔고 결국 Mercurial을 선택했다.
선택의 기준은 Mercurial을 먼저 조사했고, 이 툴이 내가 원하던 기능을 할 수 있는 수단을 제공하고 있었다는 것이었다.
또, Git vs Mercurial 주제의 포스팅들도 보고 Git man페이지도 보고, 이것저것 자료도 훑어 봤지만, 속도를 제외하고는 내가 하려는 일에서 Git이 Mercurial보다 좋은 점을 찾을 수 없었고 그냥 Mercurial을 설치했다.
기본적인 내용은 Mercurial 공식홈에 다 있고
OSX Eclipse에 설치과정은 다음과 같다.
서버(Ubuntu)
- 패키지 관리자로 mercurial, hgsvn을 설치한다.
- hgsvn패키지의 hgimportsvn을 이용하여 SVN레포를 Mercurial레포로 전환한다.
- 공식홈에 나온대로 trac 플러그인을 설치하거나 패키지 관리자로 trac-mercurial 을 설치한다. (세팅은 webadmin 설정과 동일함. 공식홈 참조)
- 참조 : http://ww2.samhart.com/book/export/html/49
클라이언트(OSX)
- mercurial을 설치한다.
- 공식홈에 링크되어 있는 플러그인을 다운받아 설치한다.(url을 이용한 업데이트로 설치해도 된다.)
- ssh-askpass를 설치한다(X11이나 osx버전이나 콘솔버전도 상관없음)
- “sudo ln -s ssh-askpass설치경로 /usr/libext/ssh-askpass” 로 ssh-askpass를 링크한다
- 이클립스를 실행하고 환경설정에 들어가서 Team탭을 본다
- Team-MercurialEclipse에서 Mercurial 실행파일 경로를 절대경로로 잡아주고 사용자 아이디를 입력한뒤 OK버튼을 눌러준다
- 프로젝트를 새로 만들기 위해 메뉴를 보면 Mercurial이 생겼는데 SVN이나 CVS의 모양과 거의 같다.
- 주소는 ssh://아이디@서버주소//레포지토리의 절대경로 를 입력하고 확인을 누르면
- ssh-askpass 가 실행되면서(x11-ssh-askpass 등 설치프로그램이 콘솔이 아닐경우) 패스워드를 요구한다.
- 입력하면 이상없이 잘 pulling이 되고 사용하면 된다.
- 주의 할 점은 ssh로 한번이상 수동으로 서버에 접속해서 서버가 rsa키를 생성해둬야 한다는 것
귀찮아서 스샷 이런거 없다.(내가 나중에 다시 보려고 만든거니까)
MercurialEclipse에서 불편한 점은
SVN 플러그인 Subversive의 최대 장점인 커밋, 업데이트 등 VCS 명령어의 단축키가 전혀 없다는것이고,
DVCS에 대해서 이해만 하고 있으면 나머지는 서브버전과 거의 같게 사용할 수 있다.