突撃Mercurial SCM(HG)

5636 ワード

この水銀というソース管理ツールは無名ですが、多くのチームで使用されています.一部のチームのニーズに対応するために、コードを管理するためにも使用します.
今日の任務はまず突撃して勉強し,刀を研いで薪を切らないことだ.ツールの習得が早ければ早いほど、仕事の効率が高くなります.
1.インストール
まず公式サイトから最新のバージョンをダウンロードして、私は今回実験をして、3.2-rcをダウンロードしました.
指定したディレクトリに解凍します.
[linc@localhost mercurial]$ ls
mercurial-3.2-rc.tar.gz
[linc@localhost mercurial]$ tar xzvf mercurial-3.2-rc.tar.gz 

インストールする前にpython-devがインストールされているかどうかを確認します.これはfedoraの下でpython-develと呼ばれます.ない場合、コンパイル時にエラーが発生します.
mercurial/base85.c:13:20: fatal error: Python.h: No such file or directory
/usr/include/python 2.7/の下に上記のヘッダファイルがあるかどうかを見るだけでわかります.
インストールも簡単です.ubuntuで使用します.
sudo apt-get install python-dev
fedoraで使用:
[linc@localhost etc]$ sudo yum install python-devel
はmercurial-3.2-rcパスの下で実行されます.
[linc@localhost mercurial-3.2-rc]$ make install-home
python setup.py  build 
running build
running build_mo
running build_ext
building 'mercurial.base85' extension
...
make[1]: *** [hg.1] Error 255
make[1]: Leaving directory `/home/linc/dev/mercurial/mercurial-3.2-rc/doc'
make: *** [doc] Error 2
最後のエラーはドキュメントに関するもので、ここでは無視され、hgを実行しようとしたが、フィードバックが得られ、基本機能がインストール済みであることを示した.
[linc@localhost mercurial-3.2-rc]$ hg
Mercurial Distributed SCM

basic commands:

 add           add the specified files on the next commit
 annotate      show changeset information by line for each file
 clone         make a copy of an existing repository
 commit        commit the specified files or all outstanding changes
 diff          diff repository (or selected files)
 export        dump the header and diffs for one or more changesets
 forget        forget the specified files on the next commit
 init          create a new repository in the given directory
 log           show revision history of entire repository or files
 merge         merge working directory with another revision
 pull          pull changes from the specified source
 push          push changes to the specified destination
 remove        remove the specified files on the next commit
 serve         start stand-alone webserver
 status        show changed files in the working directory
 summary       summarize working directory state
 update        update working directory (or switch revisions)

(use "hg help" for the full list of commands or "hg -v" for details)
.簡単な使用
次に、プロジェクトを作成してコードをコミットしてみます.
Initディレクトリを作成するには、次の手順に従います.
[linc@localhost testHG]$ hg init testMercurial
[linc@localhost testHG]$ ls
testMercurial
[linc@localhost testHG]$ cd testMercurial/
私の小さなプロジェクトを追加し、他のディレクトリのソースコードをここにコピーします.
[linc@localhost testMercurial]$ cp -r ../../hello/* .
[linc@localhost testMercurial]$ ls
Debug  Release  src
現在のステータスを表示します.
[linc@localhost testMercurial]$ hg status
? Debug/makefile
? Debug/objects.mk
? Debug/sources.mk
? Debug/src/subdir.mk
? Release/makefile
? Release/objects.mk
? Release/sources.mk
? Release/src/subdir.mk
? src/hello.c
疑問符は、バージョン管理に組み込まれていないことを示しています.次に追加します.
[linc@localhost testMercurial]$ hg add
adding Debug/makefile
adding Debug/objects.mk
adding Debug/sources.mk
adding Debug/src/subdir.mk
adding Release/makefile
adding Release/objects.mk
adding Release/sources.mk
adding Release/src/subdir.mk
adding src/hello.c
[linc@localhost testMercurial]$ hg status
A Debug/makefile
A Debug/objects.mk
A Debug/sources.mk
A Debug/src/subdir.mk
A Release/makefile
A Release/objects.mk
A Release/sources.mk
A Release/src/subdir.mk
A src/hello.c
Aがaddの標識です.次はこれらのコードを提出しましょう.
[linc@localhost testMercurial]$ hg commit -m 'initial commit'
abort: no username supplied
(use "hg config --edit" to set your username)
[linc@localhost testMercurial]$ hg config --edit
残念ながら、プロファイルに名前を編集していないので、まず追加してから、コードをコミットし続けます.
[linc@localhost testMercurial]$ hg commit -m 'initial commit'
[linc@localhost testMercurial]$ hg status
[linc@localhost testMercurial]$ hg log
changeset:   0:23ac3f5bfc59
tag:         tip
user:        Lincoln <[email protected]>
date:        Mon Oct 27 21:05:10 2014 +0800
summary:     initial commit
の上のchangesetはgitの中のcommit idで、コロンの前の0はあなたのchangeset idで、もっと前にその経歴を表すほど年を取っています.
tagのtipは、一般的に最新のchangesetに登場しますが、このテクニックは覚えておいてくださいね.
最後に、コミットをリモート・ライブラリにプッシュすると、大きな成果が得られます.gitと同様にpushコマンドも使用されます.
hg push /the remote repository
私はこの版がすべてあれらの地方を改正してどのように調べることを見たいですか?gitでshowコマンドを使ったのを覚えています.hgは?exportでいいです.
[linc@localhost testMercurial]$ hg export 0:23ac3f5bfc59
# HG changeset patch
# User Lincoln <[email protected]>
# Date 1414415110 -28800
#      Mon Oct 27 21:05:10 2014 +0800
# Node ID 23ac3f5bfc592c7bd2b293e8ace0f42b9e541ece
# Parent  0000000000000000000000000000000000000000
initial commit

diff -r 000000000000 -r 23ac3f5bfc59 Debug/makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Debug/makefile	Mon Oct 27 21:05:10 2014 +0800
@@ -0,0 +1,44 @@

この基本的な機能はこのようにして、後でmerge、conflictなどの機能を続けます.
後記:
2015.1.29
ubuntuにインストール:
上記のエラーは、docのインストールにはpython-docutilsツールが必要です.インストールする必要があります.
/opt/mercurial-3.3-rc$sudo apt-get install python-docutils今回再コンパイルすれば問題ありません:
/opt/mercurial-3.3-rc$ sudo make install
参照先:
http://mercurial.selenic.com/guide