Subversion, Mercurial

Computing 2011. 4. 10. 02:08

개인적으로 (회사 일 아님) Mercurial 을 사용할 일이 생겼다.

조금 써 보니 여태껏 subversion 을 사용하면서 가렵던 부분들이 시원하게 해결되어 있어서 아주 기뻤다.


1. 한번에 여러개의 버그를 수정하는 패치를 동시에 진행할 경우

subversion 을 사용할 때에는 버그 갯수만큼 checkout 받아서 각각 수정하고 진행하였지만, mercurial 은 그럴 필요 없다. Mercurial Queue 를 사용하면 아주 간단하고도 깔끔하게 원하는 패치만 올렸다가 내렸다가 할 수 있다.


2. 여러개의 호스트, 운영체제에서 동일한 패치를 적용해서 테스트 한 후, 실제의 repository 에 적용해야 하는 경우

subversion 을 사용할 때는 branch 를 생성해서 작업하지 않는 이상, 일일이 diff 파일을 각각의 호스트에 옮겨서 patch 해야만 했다. 정말 귀찮은 작업이었다.

mercurial 을 사용하면 전혀 그럴 필요가 없다. 각각의 호스트가 곧 repository 이기 때문에 그냥 변경 사항을 pull 하기만 하면 된다.


3. 하나의 버그 패치가 여러 단계로 이루어질 수 밖에 없어서 중간중간의 소스를 형상관리도구에 기억시켜야 하는 경우

subversion 을 사용하면 branch 를 따서 작업할 수 밖에 없는데, 버그 하나 때문에 branch 를 생성하는 것은 repository 를 번잡하게 만들기 때문에 그다지 내키지 않는다. 그렇지만, 단계별 작업을 어딘가에 저장하지 않고 working directory 에만 두자니, 첫번째 단계를 무사히 완료하고, 두번째 단계를 작업하다가, 두번째 단계만 재 작업해야 할 경우 아주 곤란하고... 이와같은 고민이 전혀 필요없다.


할 수 만 있다면, 지금 회사에서 사용하는 subversion 도 mercurial 로 옮기자고 이야기하고 싶다. 전 회사에도 mercurial 을 추천해 주고 싶다.

----

2011년 4월 23일 추가:

mercurial book 에서 저자는 mercurial 을 사용하다 보면 대부분의 작업이 "사회적" 작업이 될 것이라고 했는데, 조금 사용해 보니, 정말로 그러하다. mercurial 을 한번 사용해 보고 싶은 사람이라면 반드시 읽어 보기를 권한다:

Quick Start Guide: http://mercurial.selenic.com/quickstart/
Mercurial Book: http://mercurial.selenic.com/wiki/MercurialBook/

: