Mercurial은 커밋할때 사용되는 사용자이름으로 'user@localhost'를 기본값으로 사용합니다. 이것은 대게 의미없으므로 제대로된 이메일주소로 설정하는 것이 좋습니다. ~/.hgrc (윈도에서는 %USERPROFILE%\Mercurial.ini) 파일에 아래와 같이 추가하세요:
[ui] username = Author Name <email@address>
만약 브라우져로 확인할 수 있는 저장소의 URL이 있다면 (예: http://selenic.com/hg), 아래와 같이 복사본을 가져올 수 있습니다
$ hg clone http://selenic.com/hg
(기본값으로) hg라는 새 디렉토리가 생성되며, 전체 프로젝트의 기록(history)를 가져오고, 가장 최신의 changeset으로 체크 아웃 합니다.
hg 저장소를 하나 만들어서 시작해 볼 수도 있습니다
$ cd project/ $ hg init # .hg 만듦
Mercurial은 당신의 -프로젝트의- 루트 디렉토리에서 glob패턴들과 정규표현식들로 무시할 파일들을 모아둔 .hgignore파일을 찾습니다. 아래에 .hgignore 파일 예제가 있습니다.
syntax: glob *.orig *.rej *~ *.o tests/*.err syntax: regexp .*\#.*\#$
당신의 .hgignore 파일을 시험해 보세요
$ hg status # 무시하지 않는 파일들을 모두 보여주기
이 명령어는 무시하지 않는 모든 파일과 ? 표시(버젼관리 하지 않음)를 리스트업 할 것입니다. 당신의 .hgignore 파일을, status명령 실행시 당신이 버젼관리(track) 하기를 원하는 파일들만 리스트업 될 때 까지 수정하세요. .hgignore 파일 또한 버젼관리 하여야 할 것입니다! 하지만 빌드 과정에서 생성된 파일들은 버젼관리 하기를 원하지 않겠죠. 만족스러우면, -? 표시되는- 파일들의 추가를 예약하고 커밋하세요.
$ hg add # 그 'unknown'파일들을 추가하기 $ hg commit # 모든 수정 사항을 커밋하고, 체인지로그를 편집
$ hg clone project project-work # 새 브렌치를 생성 $ cd project-work $ <make changes> $ hg commit $ cd ../project $ hg pull ../project-work # project-work로 부터 변경 사항을 땡겨오기 $ hg merge # project-work의 최신 내용(tip)을 우리의 작업 디렉토리로 머지하기 $ hg commit # 머지 결과를 커밋하기
(저장소 내용 수정) $ hg commit $ hg export tip # 가장 최근의 커밋을 내보내기
# 기본 Mercurial 저장소로부터 복제(clone) $ hg clone http://selenic.com/hg/ $ cd hg # 이미 존재하는 저장소를 갱신(update) $ hg pull http://selenic.com/hg/ # 브라우져 가능한 인터페이스와 함께 당신의 저장소를 HTTP로 내보내기 $ hg serve -n "My repo" -p 80 # SSH를 통해서 원격 저장소에 변경 내용을 밀어넣기(push) $ hg push ssh://user@example.com/hg/
로컬에서만 버전 관리를 하면 크게 상관이 없지만, Bitbucket 같은 호스팅 서비스를 이용하게 될 경우에는 pull 또는 push 같은 작업을 할 때 HTTP 인증이 필요하게 됩니다. 이 때 console 상에서 바로 실행하면 password를 물어보는 prompt가 뜨게 되지만, Emacs eshell이나 shell 상에서는 standard input이 Emacs에 의해 별도 처리되기 때문에 prompt가 뜨는 대신 HTTP 인증이 바로 실패하게 됩니다. 이 문제를 해결하기 위해서는 저장소 폴더(.hg) 내에 있는 hgrc 파일에 인증 정보를 기록해주는 것으로 간단히 해결할 수 있습니다.
[paths] default = https://username:password@bitbucket.org/myproject1/
이렇게 하면 인증 정보가 자동으로 전달되기 때문에 매번 password를 입력하는 번거로움도 함께 해결됩니다. 대신, hgrc 파일에 기록된 인증 정보가 타인에게 유출되는 것은 주의할 필요가 있습니다.