IT_Programming/Dev Tools

[펌] Mercurial + TortoiseHG 기초 메뉴얼

JJun ™ 2013. 7. 4. 00:38

 


 출처: http://kimsk99.blog.me/50048094182 


 

 

 

윈도우 환경에서 Mercurial을 처음 사용하는 방법을 설명한다.

먼저 가장 쓰기 편한 Mercurial툴인 TortoiseHg를 설치한다.

아마 Tortoise 시리즈의 다른 툴을 써봤다면 쉽게 사용할 수 있을 것이다.

탐색기에 대한 확장으로 동작하기 때문에 설치후 reboot해야지만 정상적으로 동작한다.

 

 

 

1. clone

 

local 폴더에서 작업을 시작하기 위해서는 처음에 반드시 clone해서 서버(정확히는 서버 저장소(repository))에 있는 데이터를 가져와야 한다. 기존의 VCS인 svn에서 checkout 명령과 비슷한 동작을

수행한다.

 

 

center 서버에 있는 WCS 프로젝트를 D:\Test 폴더로 가져오기 위해서는 아래와 같이 form을 채워야 한다.

 

 

 

2. Commit

 

Local에서 파일 편집을 하다가 저장소에 보관해야할 내용이 생기면 Commit를 하자.

아래처럼 clone 된 곳에서는 언제든 Commit할 수 있다.

 

이렇게 commit한다고 해서 svn처럼 바로 서버 저장소에 저장되는 것이 아니니 자주해도 된다.

DCVS인 Mercurial에서는 commit이 local에 저장소에 저장이 되고 나중에 push를 통해서

서버 저장소에 전달해야 한다.

 

그래서 svn과는 다르게 자주 commit할 수 있다.

여러 사람이 작업해도 꼭 작업이 끝난 시점(컴파일이 되는 시점)을 기준으로

commit할 필요없이 개인적인 필요에 따라 언제든 commit해도 된다.

 

 

 

3. push

 

local에서 commit을 통해서 쌓인 여러가지 변경 내용을 한꺼번에 서버로 보내는 명령이다.

보통 하나의 작업이 완료된 직 후(즉 자신의 PC에서 컴파일 가능하고, 기본 테스트를 통과 한 후),

push를 통해서 서버 저장소에 반영할 수 있다.

 

Context메뉴에서 TortoiseHg -> Synchronize 를 통해서 Synchronize 대화상자를 띄운 다음

Push를 할 수 있다.

 

 

 

4. pull과 update

 

commit -> push와는 정반대로 동작하는 작업으로, 서버 저장소로 부터 다른 사람들이 한 작업을

local로 가져올 때 하는 명령이다. 서버 저장소의 변경 내용을 자신의 저장소로 가져오는 것이 pull 이다.

Context메뉴에서 TortoiseHg -> Synchronize 를 통해서 Synchronize 대화상자를 띄운 다음

pull를 할 수 있다.

 

하지만 pull된 것은 바로 자신의 local 작업물에 영향을 주지 않는다.

이 작업물에 반영하려면 다시 update해야 한다. 이것은 Update To Revision 명령으로 가능하다.

 

보통 하나의 작업을 끝내고 새로운 작업(즉 버그 패치나 기능 개발)을 시작하기 전에 pull, update를 한다.

다른 사람들이 서버 저장소로 보낸 다른 작업들을 가져와서 나중에 push할 때 merge-conflict가 적게

일어날 수있도록 하기 위해서이다.

 

가능하다면 pull/update를 자주하는 것이 conflict를 줄여서 귀찮음을 줄이는 길이다.

 

[출처] Mercurial 기초 가이드 (TortoiseHg)|작성자 솔라리스

 

 

 


 

 

 

출처: http://bloodguy.tistory.com/entry/Mercurial-TortoiseHg-%EC%84%A4%EC%B9%98

 

 


 

 

1. 설치




다운로드
http://bitbucket.org/tortoisehg/stable/downloads
→ 가장 최신버전의 exe를 다운로드 (2009-10-19 현재 TortoiseHg-0.8.3-hg-1.3.1+7cea12e70129.exe)

 


설치
다운받은 설치파일 실행

 

 

라이센스 동의

 


설치경로 설정

 

 

전체설치...

 

시작메뉴에 표시될 이름 정하기

 

 

설치

 


설치중...

 


Mercurial 사용에 관한 안내

 

 

재시작 해야함

 

 


2. 저장소 생성


- SVN 저장소와 함께 사용가능 함. (같은 저장소에 2가지 버전관리)
- 저장소로 생성하고자 하는 폴더에서 마우스 오른쪽 클릭을 하고

   TortoiseHg > Create Repository Here 선택

 


 

 

경로설정을 확인, Create 버튼 누름.

 

 


SVN 저장소이면서 Mercurial 저장소임을 확인.
  - SVN : .svn 폴더가 있음
  - Mercurial : .hg 폴더와 .hgignore 파일이 있음


 

 


3. ignore 설정


SVN 에선 Mercurial 관련파일을, Mercurial에선 SVN 관련파일을 버전관리에서 제외시킴.

 
SVN
  - 저장소 폴더에서 마우스 오른쪽 클릭 > TortoiseSVN > Settings 선택

 

  - Global ignore pettern에 .hg* 추가 후 확인버튼 누름. 
     eclipse 프로젝트로 사용할 경우 .buildpath, .project, .settings도 추가

 

 

 

 


 

Mercurial
  - 저장소 폴더에서 마우스 오른쪽 클릭 > TortoiseHg > Edit Ignore Filter 선택

 


 

  - 아무것도 설정되어 있지 않을 때 : SVN 관련 파일들이 리스트에 나오고 있음

 


  - Glob 혹은 Regexp에 .svn을 추가하고 Add 버튼 누름
    Glob : 문자 그대로의 매칭 혹은 filter* 하는 식의 와일드카드 문자 사용
    Regexp : 말 그대로 정규표현식

 

 

 

  - Filters에 .svn이 추가되어 있고, 우측 파일리스트에 svn관련 파일들이 사라짐을 확인.
    같은 방법으로 .hgignore도 추가함 (만약 hgignore도 공유할 필요가 있다면 추가하지 않음)
    eclipse의 프로젝트로 사용시 .buildpath, .project, .settings 추가

 



4. commit



- Mercurial 저장소 초기화를 위해 commit.
- commit 하기 전에 commit을 위한 세팅 (커미터 이름)
- 저장소에서 오른쪽 클릭 > TortoiseHG > Global Settings 선택
- Repository 단위로 세팅을 원하면 Repository Settings 선택

 


- Commit 탭의 Username 설정.
- Apply 버튼을 눌러 적용.

 


 

- 저장소 폴더에서 오른쪽 클릭 > HG Commit 선택

 


 

- commit message를 설정하고 ('저장소 초기화합니다.'), commit 할 파일을 체크박스로

   선택한 후 Commit 버튼 누름

 

 


 


 
- commit 결과 확인 (해당 동작을 실행하기 위한 커맨드도 나옴)

 



5. 저장소 확인



- TortoiseHG는 기본적으로 웹서버를 탑재하고 있음. 추후 이 웹서버를 통해 push, pull 등이 이루어지며,

   로그, 브랜치 등도 전부 확인가능 함.

 

- 저장소 폴더에서 오른쪽 클릭 > TortoiseHG > Web Server 선택

 


 
- 포트번호는 기본적으로 8000번을 이용함. (추후 저장소가 늘어나면 포트번호로 구분가능)
- Configure 버튼을 눌러 설정.

 


 

- 웹서버 설정 (각 항목별 설정은 그림 아래에 있음)

 

Name : 저장소 이름
Description : 저장소 설명
Contact : 저장소 관리자 연락처
Style : 웹페이지에 표시될 저장소 페이지의 스타일 (기본은 paper)
Archive Formats : 저장소 파일을 다운로드할 포맷
Port : 웹으로 사용할 포트번호
Push Requires SSL : push에 SSL을 사용할 것인지 결정
Stripes : 여러줄로 출력될 때 얼룩말무늬(-_-)로 출력할 것인지 여부
Max Files : Changeset에 출력될 파일리스트 갯수
Max Changes : Changelog에 출력될 Changeset 리스트 갯수
Allow Push : Push를 허용할 사용자 ( * = 모든 사용자 허용 )
Deny Push : Push를 거부할 사용자 (빈칸이나 <unspecified> 면 거부없음)
Encoding : 사용할 인코딩 지정

 
- 설정완료 후 Start버튼을 눌러 웹서버 가동.
- 8000번 포트로 Listen 중이라는 걸 확인 가능.
- Browse 버튼을 누르면 저장소 확인 웹페이지를 볼 수 있음 ( http://127.0.0.1:8000 으로 접속해도 됨)

 


- 제일 처음 했던 commit의 로그를 확인할 수 있음.

 


 

6. 웹페이지


log
- 해당 저장소의 로그를 볼 수 있음.
- 각 리스트를 클릭하면 changeset 확인 가능.

 

 


 

graph
- 저장소의 진행 그래프
- 아래의 그림에서 노란색 그래프는 메인트렁크이고 우측의 녹색은 분기된 브랜치를 나타냄.

  분기상태에 따라 병합지점 등도 확인 가능함.

 

 


tags
- SVN의 tag와 같음.
- tip은 현재 최신버전의 tag를 뜻하며, tag를 설정하면 이 페이지에 리스트로 나옴.

 


branch
- 브랜치를 확인할 수 있음. (default는 메인트렁크)

 

 

 

changeset
- 각 리비전 별 변화된 내용을 확인 가능.

 

 


raw
- 해당 리비전의 patch 파일 원본내용을 확인 가능

 

 


 

browse
- 저장소 디렉토리 브라우징

 

 
bz2, zip, gz
- 저장소 파일을 압축해서 다운로드 받을 수 있는 링크 (설정하기에 따라 다르게 나옴)

 

 

검색
- 우측 상단의 에디트박스에 검색어를 입력해 검색 가능.