Mercurial (Source Control management)

2011. 3. 3. 12:57OS/개발환경구축

CVS , SVN ,Git.... 에 이은 소스관리
Mercurial에 대해서 간략히 정리를 하려고 합니다.

1. 머큐리얼 사이트
  http://mercurial.selenic.com/




우선 사이트에서 .. 본인에 맞는 버전을 설치 합니다.
모두 다 설치를 하고 나면.. 간단히 테스트도 가능하지요..

아래는 Mercurial에 대한 자랑을 늘어 놓은 것네요 (구글에서도 지원하고 있다고 합니다.)

-Distributed architecture ,Fast ,Platform independent,Extensible,Easy to use,Open Source
분산 구조 방식 ,데이터 구조가 빠르게 설계, 플랫폼의 독립성 ,확장성,사용하기 쉽고,오픈 소스라는 거

아아아.. 몰라 몰라.. 그래 어떻게 하는거냐.. 그게 중요하지..
주요 사용 명령어입니다. (이거 말고도 많이 있습니다.)

hg init: create a new repository
==> 새로운 repository 를 만든다.
hg commit: save your changes in the current repository
==> 현재 repository에 변경된것을 저장한다.
hg log: see all changes in your repository
==> 내 repository에 변경된 내역을 본다.
hg pull: get all changes from another repository into the current one
==> 현재 repository안에 다른사람의 repository로부터 모든 변경사항을 가져온다.
hg push: get all changes from your repository into another one
==> 다른 repository안에 내 repository로부터 모든 변경사항을 가져온다.
hg serve: create an instant-webserver. People can see the history there and pull from it
==> 인스턴스 웹서버를 만든다. 사람들은 그곳에 있는 내역을 볼수 있고, 그것을 가져올수 있다.
hg merge: join different lines of history
==> 내역의 다른라인을 연결한다.


0. 첫번째로... mercurial.ini 파일에 아래와 같이 이름과 이메일 정보를 기재하고 저장한다.
[ui]
username = Mr. Johnson <johnson@smith.com>

1. 프로젝트 초기화
작업 대상이 되는 새로 폴더를 선택해서, 초기화 한다.
아래는 projet 라는 폴더로 초기화 하는군요

$ hg init project

2. 파일을 더하고 수정된 것들을 추적
해당 파일로 이동을 합니다. 초기화 했기 때문에 해당파일내에는 새로운 폴더가 하나 생겼죠.
그안에서 모든 일들이 이뤄지는듯 보입니다.

$ cd project
$ (add files)
$ hg add     ##$ hg add file0* file10 file11 file12 ==> 음.. 별도 파일도 추가가 가능하답니다.
$ hg commit
(enter the commit message)

3. 변경내역을 저장하시오

$ (do some changes)  ==> 소스파일등을 작성 및 수정 하는 거겠죠..
$ hg status   ==>수정,추가,삭제등의 변경 내역을 중간에 보고 싶다면...
$ hg diff  ==> 뭐가 달라졌는지 정확하게 보고 싶다면..
$ hg commit  ==> 커밋하면 되죠..
(커밋은 위탁이란 뜻이죠.. 머큐리얼에게 맡긴다.. 그뜻인가? 우선 본인 컴퓨터에 저장할때마다 커밋)

4. 이동과 카피 파일

$ hg cp original copy
$ hg commit
(enter the commit message)
$ hg mv original target
$ hg commit
(enter the commit message)

5. 내역들을 체크합니다.

$ hg log

create a project

$ hg init project
$ cd project
$ (add some files)
$ hg add
$ hg commit
(enter the commit message)

do nonlinear development
$ (do some changes)
$ hg commit
(enter the commit message)
$ hg update 0
$ (do some changes)
$ hg commit
(enter the commit message)
$ hg merge
$ (optionally hg resolve)
$ hg commit
(enter the commit message)

use feature clones
$ cd ..
$ hg clone project feature1
$ cd feature1
$ (do some changes)
$ hg commit
(enter the commit message)
$ cd ../project
$ hg pull ../feature1

share your repository via the integrated webserver
$ hg serve &
$ cd ..
$ hg clone http://127.0.0.1:8000 project-clone

export changes to files
$ cd project-clone
$ (do some changes)
$ hg commit
(enter the commit message)
$ hg export tip > ../changes.diff

import changes from files
$ cd ../project
$ hg import ../changes.diff

pull changes from a served repository
(hg serve still runs on project)
$ cd ../feature1
$ hg pull http://127.0.0.1:8000

Use shared repositories on BitBucket
$ (setup bitbucket repo)
$ hg push https://bitbucket.org/USER/REPO
(enter name and password in the prompt)
$ hg pull https://bitbucket.org/USER/REPO


위에는 직접 명령어로 진행하였다면.. 이젠 툴을 설치해서 편리하게 해보라고 하네요...

http://tortoisehg.bitbucket.org/




뭐... 여기 까지다..

 http://hginit.com : 조엘 스폴스키 Mercurial 강좌
==> 한글 해석본  http://blog.doortts.com/141
http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/  Git 과 Mercurial 비교
http://ncanis.tistory.com/247  ==> 머큐리얼에 대해 정리해놓은 블로그