Mercurial SCM(HG)を襲う

5694 ワード

この水銀というソースコード管理ツールは、無名にもかかわらず、非常に多くのチームで使用されています.
一部のチームのニーズに対応するために、コードを管理するためにも使用します.
今日の任務はまず勉強を襲うことだ.刀を研いで柴刈りを間違えない.
道具の習得が早い.仕事の能率が上がる.
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