這個工具在國内很少人使用,是以中文資料匮乏.隻有官方的website上有一些少得可憐的中文資料了.不過總體上來說,hg還是比較好用的。
這裡紹一下hg的配置。關于hg在基本用法參見mercrial的官方網站。在做以下操作時,請到 http://www.selenic.com/mercurial/安裝hg.
1.建立使用者hgrepo
其它使用者将用這個賬戶用hgpush代碼。
useradd hgrepo -d /home/hgrepo # add user hgrepo
passwd hgrepo
2.建立hg代碼倉庫
如果代碼倉庫名稱為project.hg,則可用如下指令。
cd /home/hgrepo
mkdir project.hg
cd project.hg
hg init # 初始化代碼倉庫
建立一個檔案
echo "hello, mercurial" > sample.txt
hg add # add
hg ci # check in
3. 打開http
打開一個端口,讓遠端使用者可以clone倉庫中的代碼.
在打開端口前請确定檔案權限正确。
更改檔案權限
chown hgrepo.hgrepo /home/hgrepo/project.hg -R
chmod og+rw /home/hgrepo/project.hg -R
打開端口
cd /home/hgrepo/project.hg -R
hg serve -p 8002 &
可将上面兩行加入/etc/rc.local這樣就可以在開機的時候自動運作了。
4.使用hg
完成步驟3以後,我們就可以使用了。
clone到本地
例如你的伺服器的名字為test.
hg clone
然後在本地目錄就會出現一個project.hg的一個copy.
修改Client端的配置
更改.hg/hgrc,加上default-push和username
[paths]
default =
default-push = ssh://[email protected]//home/hgrepo/project.hg/
[ui]
username=shaohui.zheng
這樣你就可用hg push 向伺服器送出code了。這時伺服器會問你passward,這個password就是使用者hgrepo的password.
Good Luck.
官方網站
-------------------------------------------
使用:
1.初始化
假設你的源代碼目錄為proj,執行以下步驟可以建立初始的repository
$ cd proj
$ hg init //生成repository
$ hg add /fullpath/filename //加入檔案
或者
$ hg addremove //加入可識别的檔案,去除其他檔案
$ hg commit //生成你的代碼的第一個版本
執行此指令會讓hg調用vi,這時你可以鍵入一些關于目前送出内容的一些資訊,然後儲存退出,這個版本就行程了。
2.版本
以後每當你改動檔案後都可以使用hg commit指令來生成一個新的版本
$ hg parent //檢視目前的版本
$ hg log //檢視所有曆史版本
$ hg tag //可以在一些重大的階段制作tag,以便于将來對代碼的一些裡程碑進行回溯
$ hg tags //檢視所有的tag,進行大的版本比較
$ hg co 版本号 //可以檢出任意一個版本進行修改
而如果需要廢棄某一版本後的所有版本可以使用hg strip 版本号,這樣以後的送出的版本号将會從此版本号之
後計算。
3.檔案
$ hg status //檢視現在代碼中檔案的狀态,m表示修改過,a表示新加的檔案,
?表示檔案狀态未知。
新生成的檔案使用 $ hg add /fullpath/filename後狀态就會由?變為a
!!!新生成的檔案務必要用add指令加入repository,否則在做diff檔案的時候會沒有新檔案的内容!!!
$ hg revert //當你改變了一些檔案又後悔後就可以使用此指令來取消改動
$ hg clone source dest //可以完整地将一個repository拷貝到另一個目錄,這很适合做分支處理或者作一些實驗型代碼。
$ hg update //從原始代碼樹中取得最新的更新
$ hg pull 和 hg push 分别從原始地代碼樹中取得或者送出最新更新地檔案
4.patch
$ hg diff //比較目前改動和目前版本的差別,也可以用-r參數指定兩個版本進行比較,比較的結果可以從定向到檔案,此檔案即是一個标準的patch檔案。
$ hg import /fullpath/filename //将patch檔案打到目前的代碼樹上。