Mercurial(Hg)基本操作
Mercurial(Hg)基本操作
來(lái)源?https://www.cnblogs.com/gb2013/archive/2012/05/18/Mercurial_Basic.html
Mercurial簡(jiǎn)介
Mercurial是一款非常優(yōu)秀的分布式版本控制系統(tǒng)(DCVS),具有高效率、跨平臺(tái)、可擴(kuò)展、使用簡(jiǎn)便且開(kāi)源等優(yōu)點(diǎn),是目前最為流行的版本控制工具之一。Mercurial英文意為水銀,所以常被縮寫(xiě)為Hg。在使用Mercurial之前,我曾經(jīng)使用過(guò)VSS(已停止更新)和SVN,也嘗試過(guò)微軟的TFS,它們都不是分布式版本控制系統(tǒng),換句話說(shuō),就是當(dāng)源碼服務(wù)器故障或網(wǎng)絡(luò)不通時(shí),你將無(wú)法提交你所做的本地修改。這也是之前的版本控制工具與Mercurial最大的不同,目前與Mercurial類似的工具還有Git,但由于對(duì)Windows系統(tǒng)的支持做得不是很人性化,我個(gè)人不太喜歡。
最開(kāi)始接觸Mercurial時(shí),由于長(zhǎng)期使用SVN的緣故,已經(jīng)習(xí)慣了依賴中央源碼服務(wù)器,也曾感覺(jué)Mercurial的操作很別扭,不是很方便。但當(dāng)我在項(xiàng)目中使用了一段時(shí)間以后,就喜歡上這個(gè)它了。下面放出Mercurial相關(guān)的一些信息:
Mercurial安裝
TortoiseHg本身集成了Mercurial的服務(wù)器功能,因此我們只需要獲取最新的TortoiseHg并安裝,即可在本地進(jìn)行文件的版本控制。接下來(lái)你需要下載并安裝VisualHg以便于我們?cè)赩isual Studio中使用Mercurial。
TortoiseHg是集成在資源管理器中的,在安裝完成以后,我們?cè)谧烂婵瞻滋廃c(diǎn)擊右鍵便可以看到TortoiseHg的菜單項(xiàng),具體見(jiàn)下圖:
在Visual Studio中,我們?cè)诮鉀Q方案管理器中的解決方案文件或項(xiàng)目文件上點(diǎn)擊右鍵,便會(huì)出現(xiàn)如下菜單:
如果你操作后看到的結(jié)果和上面一樣,那說(shuō)明你已經(jīng)完成了Mercurial的本地安裝,此時(shí)你已經(jīng)可以用它來(lái)進(jìn)行本地文件的版本控制,如果愿意,你甚至可以在本地架設(shè)一個(gè)Mercurial版本控制服務(wù)器。
?
Mercurial基本操作
1.創(chuàng)建版本庫(kù)
在任意文件夾上,點(diǎn)擊右鍵,便可看到如下菜單:
在TortoiseHg的子菜單中選擇“在當(dāng)前位置創(chuàng)建版本庫(kù)”,出現(xiàn)新的會(huì)話窗口:
勾選“添加特殊文件”選項(xiàng),此處添加的便是Hg的全局忽略文件。以Visual Studio為例,全局忽略規(guī)則如下:
# Ignore file for Visual Studio 2008 ? # use glob syntax syntax: glob ? # Ignore Visual Studio 2008 files *.obj *.exe *.pdb *.user *.msi *.aps *.pch *.vspscc *_i.c *_p.c *.ncb *.suo *.tlb *.tlh *.bak *.cache *.ilk *.log *.lib *.sbr *.scc *.sws *.pdsync *.pdsyncu ~*.doc *.orig [Pp]ackages*/ [Bb]in*/ [Dd]ebug*/ [Ll]ogs/ Backup/ obj/ [Rr]elease*/ _ReSharper*/ _UpgradeReport_Files/ [Tt]est[Rr]esult* [Bb]uild[Ll]og.* *.[Pp]ublish.xml UpgradeLog.XML *.csproj.user *.ncb *.suo點(diǎn)擊創(chuàng)建以后,本地版本庫(kù)就創(chuàng)建完成了。此時(shí)你就看到了那個(gè)熟悉的圖標(biāo)—綠色的對(duì)勾,是的,和SVN樣式相同的圖標(biāo)。
2.提交變更集到本地版本庫(kù)
我們可以在Visual Studio的解決方案管理器中,右擊解決方案,然后就可以看到如下菜單:
選擇Commit后,可以看到提交會(huì)話窗口:
強(qiáng)烈建議大家寫(xiě)一些有語(yǔ)義明確、對(duì)變更集描述清晰的提交日志。也可以直接到解決方案的文件夾上右擊,操作與同面描述的相同。
3.使用Bitbucket管理項(xiàng)目源碼
如果當(dāng)前項(xiàng)目是個(gè)人開(kāi)發(fā)的小型項(xiàng)目,上述操作便可滿足需求。但對(duì)于有多人參與合作開(kāi)發(fā)的項(xiàng)目來(lái)說(shuō),只進(jìn)行變更集的本地提交,顯然是不夠的。在沒(méi)有穩(wěn)定的私有源碼服務(wù)器的情況下,我目前(推薦)的做法是,使用Bitbucket來(lái)托管項(xiàng)目源碼。免費(fèi)版本的Bitbucket帳戶,可管理的團(tuán)隊(duì)成員上限為五人,對(duì)于一般的開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),我想這已經(jīng)足夠了。好了,閑話少說(shuō),我們看一下怎么利用Bitbucket來(lái)管理項(xiàng)目源碼。
注冊(cè)一個(gè)Bitbucket帳號(hào),登錄以后,在控制面板頁(yè)面,可以看到如下的一些信息:
?
左側(cè)是你參與的項(xiàng)目的最新的變更信息以及事件的操作人,右側(cè)是你所參與或主持的項(xiàng)目。其中,封閉的鎖說(shuō)明當(dāng)前項(xiàng)目為私有項(xiàng)目,只能由項(xiàng)目所有者指定的開(kāi)發(fā)人員進(jìn)行源碼提交和修改,并且只對(duì)團(tuán)隊(duì)成員可見(jiàn);開(kāi)發(fā)的鎖則說(shuō)明是公共項(xiàng)目,源碼對(duì)所有人可見(jiàn),任何人都可以查看并下載源碼。點(diǎn)擊Repositories旁邊綠色的加號(hào),可以創(chuàng)建新的版本庫(kù);也可以使用旁邊的導(dǎo)入版本庫(kù)的功能,從其他源碼服務(wù)器上同步源碼并創(chuàng)建版本庫(kù)。選擇新建版本庫(kù)后,可以看到下面的會(huì)話界面:
編程語(yǔ)言下拉列表中已經(jīng)包含了幾乎所有的開(kāi)發(fā)語(yǔ)言種類,雖然這個(gè)對(duì)版本控制影響并不是很大,但我還是建議你選擇正確的語(yǔ)言類型。項(xiàng)目創(chuàng)建成功后,便進(jìn)入了項(xiàng)目的管理頁(yè)面,具體見(jiàn)下圖:
每個(gè)選項(xiàng)卡代表一個(gè)功能模塊,這里我不再贅述,我只就當(dāng)前介紹要用到的概覽(Overview)和管理(Admin)功能做一下說(shuō)明。概覽頁(yè)面中,克隆(clone)后面的便是當(dāng)前項(xiàng)目的同步URL。在本地文件夾的空白處點(diǎn)擊右鍵,選擇TortoiseHg—>clone:
彈出的會(huì)話窗口中,在“源”那一欄填寫(xiě)克隆地址,點(diǎn)擊克隆即可將版本庫(kù)下載至本地:
打開(kāi)克隆到本地的版本庫(kù),目錄結(jié)構(gòu)如下:
其中,.hg目錄即是本地的Mercurial版本庫(kù)。
?
?
4.獲取外部變更集
前面已經(jīng)描述了怎么提交變更集到本地版本庫(kù),在多人合作開(kāi)發(fā)的情況下,我們還需要將本地變更集同步到中心服務(wù)器上。在同步之前,我們要先獲取外部變更集。操作如下:
在Hg工作臺(tái)(桌面空白處右鍵可見(jiàn))中,選擇要操作的項(xiàng)目,如圖所示,點(diǎn)擊向下拉取的圖標(biāo):
在彈出的會(huì)話窗口中填寫(xiě)B(tài)itbucket網(wǎng)站中的帳號(hào)密碼:
獲取完成后,可看到如下分枝列表:
如果分枝列表的形狀如下圖所示,說(shuō)明在你將本地變更集同步至服務(wù)器之后,團(tuán)隊(duì)中其他成員已進(jìn)行過(guò)合并操作,此時(shí)只需要在右鍵菜單中直接選擇更新(Update)即可:
否則,需要進(jìn)行外部變更集和本地變更集的合并。
5.合并變更集
對(duì)于兩個(gè)不同的分枝,需要進(jìn)行合并操作。如下圖所示,從菜單中選擇“與本地庫(kù)合并”:
在合并會(huì)話窗口中,取消“盡量自動(dòng)解決合并的沖突”選項(xiàng)(個(gè)人感覺(jué)這個(gè)自動(dòng)合并不但作用不大,反而影響合并后文件的準(zhǔn)確性):
合并開(kāi)始后,會(huì)自動(dòng)提示沖突文件的個(gè)數(shù),此時(shí)選擇窗口中的resolved選項(xiàng):
在列出的沖突文件列表中,選擇“Mercurial Resolve”選項(xiàng):
此時(shí),沖突文件會(huì)移至“Resolved conflicts”列表,選擇其中的某個(gè)文件,點(diǎn)擊“3路合并(3-way diff)”:
三路合并工具我推薦大家使用(Beyond Compare),合并界面如下圖:
合并界面中,左側(cè)是本地版本,右側(cè)是外部版本,下方是合并后的文本。點(diǎn)擊綠色箭頭就會(huì)將本地版本合并到文件中,點(diǎn)紫色箭頭會(huì)將外部變更合并到文件中,版本選擇根據(jù)項(xiàng)目情況自行決定。
合并完成后,選擇當(dāng)前修改的本地文件,并點(diǎn)擊下拉框右側(cè)的保存按鈕:
?
點(diǎn)擊提交,將合并結(jié)果提交至本地庫(kù):
6.同步合并后的版本至托管服務(wù)器
打開(kāi)Hg工作臺(tái)(Workbench),選擇快捷菜單欄的推送按鈕(向右上的綠色箭頭):
在彈出的推送會(huì)話窗口中選擇“確認(rèn)(Yes)”,并填寫(xiě)B(tài)itbucket的帳戶密碼:
同步開(kāi)始后,可以在最下方的日志輸出窗口看到同步狀態(tài):
進(jìn)度條結(jié)束,同步操作即已完成:
?
============?End
?
轉(zhuǎn)載于:https://www.cnblogs.com/lsgxeva/p/10195072.html
總結(jié)
以上是生活随笔為你收集整理的Mercurial(Hg)基本操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: devcon-计算机硬件设备的禁用与启动
- 下一篇: jfinal项目部署服务器,jfinal