mercurial是乙個跨平台的分布式版本控制工具。主要由python語言實現,也包含乙個用c語言實現的二進位制比較工具。對mercurial的所有操作都由不同的關鍵字作為hg的引數來實現的。它採用sha-1雜湊演算法來識別修訂版本,使用乙個基於http的協議來接入網路中版本庫,在2023年第一次發布。轉換外掛程式可以將其他版本庫轉換成mercurial的版本庫。從第6版開始支援netbeans。tortoisehg提供乙個面向windows的基於右鍵選單的快捷方式。
mercurial有個嚴重的缺點:不支援針對單個資料夾的分支。python、firefox、google都使用hg作為版本控制工具,與git相比,跨平台,而且效能高。**託管可以選擇bitbucket。
下面操作方法使用之前,必須搭建好hg伺服器。
操作方法:
2.檢視當前資訊:
hg branches :檢視該主幹上的所有cws分支
hg branch :顯示當前**的cws名稱(初次下的**預設為主幹,名稱為default)
3.建立cws
hg branch cws-name :建立cws,必須保證當前的**環境為主幹,即hg branch命令查詢的結果為default
hg update -r default :切換至主幹
hg update -c -r cws-name :切換cws的同時將**更新為該cws的**,但是切換之前的分支中的未提交**將丟失
5.更新當前分支:
hg pull;
hg update;
或hg pull -u :將當前cws更新至最新**
6.新增新檔案至cws
hg add path/file1 path/file2 ... :新增新檔案,指定每個所新增檔案的詳細路徑,多個檔案之間用空格分開,防止新增不相關的檔案
hg status :在新增新檔案之前,可以用該命令查詢當前**中的未知檔案
7.**提交至本地**庫之前的檢查:
hg status -m :查詢所修改的檔案列表
hg status -a :查詢所新增的新檔案列表
8.**提交至本地**庫:hg commit -m "your comments to your codes" path/file1 path/file2 ...
9.提交至伺服器之前的驗證:
hg log -v -r tip :提交至本地**庫後,檢查提交的是否正確,若有問題,執行下一命令,重新提交hg rollback :若有問題,執行此命令,再重新提交hg outgoing :再次驗證10.提交**至伺服器:hg push [-f] :將**提交至伺服器,在保證前面的程式正確無誤後,再執行此提交
p.s.:-f引數只有在第一次建立cws時使用,以便將該cws push到伺服器上去,之後提交**時都不用此引數
"hg push"時很有可能你的提交會被拒絕(提示會增加乙個遠端heads),這表明有人在你pull之後且在你push之前在你工作的同乙個分支上已經push過**了,你必須更新後才能push。解決方法是使用"hg pull -u"命令更新**(或更精確的使用"hg pull -u -r 分支名"更新你所在分支的**即可,此法有時似乎行不通),然後使用"hg merge"解決衝突,解決完衝突後commit,這時再使用"hg push"命令就可以了。
11.查詢分支的操作記錄
hg log -v -b cws-name :查詢相應分支的操作記錄
12.查詢記錄
hg log 命令有很多有用引數可以幫助我們比較方便的查詢歷史提交記錄以方便追溯**。例如: "hg log -u myname" 會列出使用者myname的所有提交記錄。
"hg log -d 2010-01-28" 會列出在2010-01-28這一天的所有提交記錄。
關於日期格式可用"hg help dates"檢視。
"hg log -k bug25703" 會列出包含bug25703這個關鍵字的所有提交記錄,(注意hg關鍵字搜尋包含兩個地方:提交檔案和提交注釋)。
以上選項-u -d -k 還可以組合使用以提高搜尋命中率,
例如:"hg log -u zongyuan.xiao -d "2010-01-28 to 2010-01-29" -k bug25703" 會搜尋使用者zongyuan.xiao在從2010-01-28到2010-01-29這兩天的所有包含關鍵字bug25703的提交記錄。
"hg log path/to/a.cxx" 可以檢視指定檔案的記錄(多個檔案用空格分開),當然也可以使用上面提到的選項 -u -d -k 等。
hg版本管理工具使用
使用 1.初始化 假設你的源 目錄為proj,執行以下步驟可以建立初始的repository cd proj hg init 生成repository hg add fullpath filename 加入檔案 或者 hg addremove 加入可識別的檔案,去除其他檔案 hg commit 生成...
git分布式版本管理工具學習筆記
綜述 來了新的公司,以前用的是svn,現在是git,在這裡總結學習下,提高自己的認識。svn vcss系統等都是集中式的版本控制系統,git是分布式的。兩者的區別是 svn 面試問題 在集中庫建立乙個hotfix分支,進行修改後將其push到集中庫中,然後傳送乙個pr向qa請求合併 到product...
Git分布式版本管理工具 流程分享
這裡對如何安裝git不再贅述,可自行參考其他教程進行安裝。1.初始化git倉庫 在專案的根目錄中,右鍵選擇git bash here開啟git命令列。命令 git init初始化git倉庫,會生成乙個.git目錄,預設是隱藏的,存放專案 備份。2.開始建立正常專案檔案 正常新增專案檔案,如 read...