這個叫水銀的源代碼管理工具儘管默默無聞,但仍是獲得了很是多團隊的使用。python
爲了迎合某些團隊的需要,咱們也要用它來管理咱們的代碼。git
今天的任務是先襲擊學習。磨刀不誤砍柴工。web
對工具的掌握越快。工做的效率就會越高。ubuntu
首先從官網下載最新的版本號,我此次作個實驗,下載了3.2-rc。python2.7
解壓到你指定的文件夾下:ide
[linc@localhost mercurial]$ ls mercurial-3.2-rc.tar.gz [linc@localhost mercurial]$ tar xzvf mercurial-3.2-rc.tar.gz
mercurial/base85.c:13:20: fatal error: Python.h: No such file or directory僅僅要看看/usr/include/python2.7/下有沒有上述的頭文件就知曉了。
sudo apt-get install python-devfedora下使用:
[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)2.簡單的使用
如下就要試着建立一個項目並提交代碼。工具
建立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 ?ui
Debug/sources.mk ? Debug/src/subdir.mk ?code
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.cA就是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 <linc@xxx.com> 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 <linc@xxx.com> # 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 @@
後記:
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