Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Mercurial로 bitbucket에서 프로젝트 init하기

DVCS인 gitgithub가 있다면 Mercurial에는 bitbucket이 있습니다. 둘의 사용법은 상당히 유사하기는 하지만 일반적으로 사용법이나 툴의 친절함은 Mercurial쪽이 좋지만 웹사이트인 github는 bitbucket에 비해서 압도적으로 좋습니다.(참조) 어찌하다보니 이 2가지를 다 쓰고 있고 있습니다. 홍민희님 블로그에서도 나와있듯이 마케팅적인 요소를 생각한다면 github쪽이 훨씬 좋습니다.

무료로 사용한다는 전제하에 둘의 큰 차이점이 있는데 이는 github는 저장소의 공개여부로 여부로 과금이 됩니다. 공개 저장소는 무료이지만 비공개저장소를 이용하려면 유료버전을 사용해야 합니다. 대신에 bitbucket은 얼마전에 Atlassian으로 인수되면서  협업개발자수로 과금이 됩니다. 저장소의 공개/비공개 여부에 상관없이 같이 작업하도록 등록된 개발자가 5명이 넘으면 유료버전을 사용해야 합니다. 이걸 반대로 보면 공개저장소거나 여러명이서 개발할 프로젝트는 github를 쓰고 혼자쓰면서 비공개로 할 프로젝트는 bitbucket을 쓰면 된다는 것이고 저는 이렇게 쓰고 있습니다.(bitbucket의 비공개저장소의 갯수제한에 대해서는 언급되어 있지 않아서 정확하지는 않지만 여러개를 만들 수 있더군요.) 호스팅서버에 Subversion과 Redmine을 설치해 놓기는 했는데 이젠 그 관리조차 좀 귀찮더군요.




인트로가 길었는데 각설하고 bitbucket에서 저장소를 만들고 다른 사람의 프로젝트를 clone받거나 처음 저장소를 만들어서 clone받고 vim같은 곳에서 파일 만들면서 개발하는 것은 아무 문제가 없었는데 IDE와 함께 새로 시작하려니 git과는 사용법이 달라서 좀 헤맸습니다.

hg clone 저장소주소 를 하면 해당프로젝트의 이름으로 폴더가 생기고 IDE같은 곳에서 프로젝트를 생성하면 마찬가지로 프로젝트명의 폴더가 생깁니다. 이제 문제는 둘다 이미 있는 폴더면 충돌이 난다는 점입니다. clone받고 IDE에서 생성하려니 이미있는 폴더고 IDE에서 프로젝트 만들고 clone받으려면 이미 있는 폴더인 상황입니다. hg는 다른 사람프로젝트만 만지고 git을 위주로 좀 쓰다가 hg로 처음 먼가를 해보려고 하니까 이 문제에서 당혹감이 생겼습니다. 여기서 당혹감을 느낀 이유는 먼저 이런 경우에서 사용해보았던 git에는 이런 작업을 아래처럼 가이드하고 있기 때문입니다.

git init
git remote add origin 저장소주소
git push origin master

저장소를 초기화하고 저장소의 주소를 지정하고 push할 수 있는데 hg에는 init은 있지만 저장소의 주소를 추가하는 명령어가 없어서(없는건지 제가 못찾는건지 ㅡㅡ;;) 수동으로 저장소를 설정해 주어야 합니다. bitbucket의 가이드 문서에서는 clone해서 파일추가하는 것만으로 설명하고 있습니다.



hg init을 실행하면 해당 프로젝트 폴더에 .hg 폴더가 생성되고 이 폴더 안에 .hgrc라는 파일를 만들어서 아래의 내용을 추가해 줍니다.

[path]
default = 저장소주소

이제 해당 폴더에서 push를 하면 저장소서버로 push가 됩니다. (물론 이런 작업전에 가이드문서처럼 사용자계정의 .hgrc파일에 필요한 정보를 설정해 주어야 합니다.)
2010/11/22 00:32 2010/11/22 00:32