Mercurial

Mercurial 사용법

username 설정

Mercurial은 커밋할때 사용되는 사용자이름으로 'user@localhost'를 기본값으로 사용합니다. 이것은 대게 의미없으므로 제대로된 이메일주소로 설정하는 것이 좋습니다. ~/.hgrc (윈도에서는 %USERPROFILE%\Mercurial.ini) 파일에 아래와 같이 추가하세요:

[ui]
username = Author Name <email@address>

이미 존재하는 Mercurial 프로젝트에서 작업하기

만약 브라우져로 확인할 수 있는 저장소의 URL이 있다면 (예: http://selenic.com/hg), 아래와 같이 복사본을 가져올 수 있습니다

$ hg clone http://selenic.com/hg

(기본값으로) hg라는 새 디렉토리가 생성되며, 전체 프로젝트의 기록(history)를 가져오고, 가장 최신의 changeset으로 체크 아웃 합니다.

Mercurial 프로젝트 설정하기

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/

간단한 명령어 리스트

  • hg -v
  • hg init
  • hg add
  • hg status
  • hg commit
  • hg log
  • hg revert
  • hg diff

Mercurial Tip

HTTP 인증 문제

로컬에서만 버전 관리를 하면 크게 상관이 없지만, 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 파일에 기록된 인증 정보가 타인에게 유출되는 것은 주의할 필요가 있습니다.

유용한 링크

tip/mercurial.txt · 마지막 수정: 2011/02/22 11:14 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 : CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki