天天看點

linux hg 圖形,Linux下Mercurial (hg)配置說明

這個工具在國内很少人使用,是以中文資料匮乏.隻有官方的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檔案打到目前的代碼樹上。