Mercurial - Spectre
最近更新: 6.43b
基本操作
以下使用大多基于命令行形式,版本是1.2.11
因?yàn)楸镜丶词前姹編?kù)的服務(wù)端也是版本庫(kù)的客戶(hù)端,所以首先得區(qū)分好版本庫(kù)和工作目錄兩個(gè)概念,版本庫(kù)存放了所有的版本,工作目錄只是某個(gè)特定的版本,這個(gè)概念同svn是一致的,只是svn的版本庫(kù)不在本地,而在集中的一臺(tái)服務(wù)器上。
hg init創(chuàng)建新倉(cāng)庫(kù),版本庫(kù)的文件放在一個(gè).hg的文件夾下面
hg add添加未版本化的文件
hg commit提交修改,使用-m 填寫(xiě)comments,同svn是一樣的
hg tip查看當(dāng)前版本庫(kù)的最新版本,注意:不是當(dāng)前工作目錄的最新版本。tip是版本庫(kù)最新版本的意思
hg parents查看當(dāng)前工作目錄的最新版本,如果這個(gè)版本有多個(gè)parent,會(huì)顯示出來(lái),如果沒(méi)有則不顯示。parent是指某個(gè)版本的前一個(gè)版本,如果某個(gè)版本通過(guò) 兩個(gè)版本merge而來(lái),則會(huì)出現(xiàn)多個(gè)parents。mercurial還不支持超過(guò)兩個(gè)的parents,也就是說(shuō)只能將版本兩個(gè)兩個(gè)的合并,合并3 個(gè)版本需要操作2次,合并4個(gè)版本需要操作3次,依次類(lèi)推,如果碰到8個(gè)版本需要合并,則需要合并7次...
hg clone克隆一個(gè)版本庫(kù)到本地,當(dāng)項(xiàng)目開(kāi)始的時(shí)候,建議在一臺(tái)電腦上init項(xiàng)目后,然后大家從他那clone出來(lái),而不是各自init。
hg pull從另一個(gè)版本庫(kù)更新版本到本地
hg push將本地版本庫(kù)更新到其他版本庫(kù)中,其他版本庫(kù)需要開(kāi)通ssh服務(wù),Windows下需要cygwin來(lái)啟動(dòng)ssh,linux下用openssh實(shí)現(xiàn)。Windows客戶(hù)端連接ssh服務(wù)器時(shí),需要在mercurial.ini的ui段配置,如下
[ui]
ssh = "C:\Program Files\TortoiseHg\TortoisePlink.exe"
putty.exe 無(wú)法配合hg使用。
TortoisePlink.exe對(duì)于 ssh://xx/ 之后的路徑需要再加一個(gè)"/" 以示根路徑,如下:
ssh://192.168.107.129//home/arthur/hg/hello
hg incoming將本地版本庫(kù)同其他版本庫(kù)進(jìn)行比較,看看有哪些changeset在其他版本庫(kù)中可以pull過(guò)來(lái)
hg outgoing將本地版本庫(kù)同其他版本庫(kù)進(jìn)行比較,看看有哪些changeset可以push到其他版本庫(kù)中
hg update更新工作目錄,默認(rèn)參數(shù)是tip,參數(shù)也可以是版本號(hào)、tag名字、branch名字。svn中的切換branch/tag通過(guò)這個(gè)命令來(lái)實(shí)現(xiàn)
hg tag制定一個(gè)永久的版本號(hào),tag存放在.hgtags文件中,這個(gè)文件也需要版本化
hg branch顯示當(dāng)前branch,或者新建一個(gè)branch,默認(rèn)的branch名字是default。
hg diff對(duì)比版本間的差異
hg merge合并版本到當(dāng)前工作目錄,hg pull之后會(huì)提示hg update,hg update之后如果提示hg merge,這時(shí)候的merge是在最新版本的基礎(chǔ)上進(jìn)行的merge,merge之后所作的修改需要通過(guò)commit來(lái)生成新的版本號(hào)。
合并branch : hg merge branchname ,先確認(rèn)hg branch是什么再執(zhí)行這個(gè)命令。
當(dāng)一個(gè)branch的歷史使命完成的時(shí)候,這時(shí)候需要決定是基于這個(gè)branch新開(kāi)一個(gè)branch,還是在某個(gè)之前的版本開(kāi)立branch. default是一個(gè)沒(méi)有創(chuàng)立任何branch時(shí)的默認(rèn)branch名字。
如果希望繼續(xù)工作在default branch下,則需要先hg update default,然后再考慮需要合并哪些版本到default里面,之后就可以在default下一直工作了。
對(duì)于開(kāi)了多個(gè)branch需要合并到default時(shí),需要一個(gè)個(gè)branch來(lái)合并,諸如這樣:
hg merge foo
hg merge bar
hg ci -m "merge foo and bar to default
"
在windows下,如果安裝了beyond compare,會(huì)自動(dòng)被調(diào)用出來(lái)。
顯示三個(gè)窗口:本地文件、基文件((在分支分開(kāi)前的最后一個(gè)版本))、其他文件(外來(lái)的文件)。這種合并模式同svn是一樣的。
merge做完之后,需要hg ci提交修改,這時(shí)可以看到tip 信息中的parent有兩個(gè),表明是從兩個(gè)版本中merge過(guò)來(lái)的。
beyond compare對(duì)于沖突有三個(gè)基本選項(xiàng):Take left, take center, take right,分別對(duì)應(yīng)以上三個(gè)文件的內(nèi)容。還有其他幾個(gè)選項(xiàng)也很容易明白。有沖突時(shí)還可能需要手工輸入內(nèi)容。
另外,如果我們沒(méi)有安裝圖形合并程序, 我們就會(huì)開(kāi)啟文本編輯器來(lái)訪問(wèn)需要合并的文件。用手工來(lái)做這些事情是非常容易出錯(cuò)并且繁瑣的。 最好是退出編輯器并用hg rollback指令來(lái)清除["Pull"]帶來(lái)的改變,然后安裝合并程序,再做一次。
hg headshead指的是沒(méi)有兒子chaneset的changeset,也就是版本樹(shù)的葉子節(jié)點(diǎn),多個(gè)葉子節(jié)點(diǎn)可以進(jìn)行合并為一個(gè)葉子, branch heads指那些給了tag但還沒(méi)有兒子changeset的changeset。 用hg heads顯示當(dāng)前庫(kù)所有的heads , 如果存在多個(gè)heads則說(shuō)明有多條并行開(kāi)發(fā)的路徑,這時(shí)需要考慮是否需要合并。
hg serve -n "hellohg" -p 80運(yùn)行網(wǎng)絡(luò)服務(wù)。之后可以通過(guò)hg pull http://localhost/hellohg 來(lái)下載這個(gè)版本庫(kù)。這是一個(gè)臨時(shí)性的便捷的提供pull版本庫(kù)服務(wù)的方法
hg export導(dǎo)出changeset,默認(rèn)導(dǎo)出tip,需要用重定向來(lái)導(dǎo)出到文件中,之后這個(gè)文件可以通過(guò)郵件附件發(fā)出,這樣可以實(shí)現(xiàn)無(wú)網(wǎng)絡(luò)連接狀態(tài)下的版本同步
hg import導(dǎo)入changeset2100433B
相對(duì)于傳統(tǒng)的版本控制,具有如下優(yōu)點(diǎn):
更輕松的管理。傳統(tǒng)的版本控制系統(tǒng)使用集中式的 repository,一些和 repository相關(guān)的管理就只能由管理員一個(gè)人進(jìn)行。由于采用了分布式的模型,Mercurial 中就沒(méi)有這樣的困擾,每個(gè)用戶(hù)管理自己的 repository,管理員只需協(xié)調(diào)同步這些repository。 更健壯的系統(tǒng)。分布式系統(tǒng)比集中式的單服務(wù)器系統(tǒng)更健壯,單服務(wù)器系統(tǒng)一旦服務(wù)器出現(xiàn)問(wèn)題整個(gè)系統(tǒng)就不能運(yùn)行了,分布式系統(tǒng)通常不會(huì)因?yàn)橐粌蓚€(gè)節(jié)點(diǎn)而受到影響。 對(duì)網(wǎng)絡(luò)的依賴(lài)性更低。由于同步可以放在任意時(shí)刻進(jìn)行,Mercurial 甚至可以離線進(jìn)行管理,只需在有網(wǎng)絡(luò)連接時(shí)同步。
Revision
在使用 Mercurial 的系統(tǒng)中每個(gè)改動(dòng)隔離在各自的 repository 里,既避免把不相關(guān)的代碼混雜起來(lái), 又便于一個(gè)接一個(gè)的測(cè)試每一部分工作,用戶(hù)做的每個(gè)改動(dòng)稱(chēng)為一個(gè) revision。一般會(huì)有一個(gè)所有用戶(hù)都可以訪問(wèn)得到的 repository 保存了項(xiàng)目的“主要”版本,工作repository 是用戶(hù)自己做事情的地方,實(shí)現(xiàn)新的特性,修改漏洞,重構(gòu),實(shí)驗(yàn)等,當(dāng)完成改變后,你可以 push 到共用的 repositor y中,即完成了一個(gè) revision。
Changeset
一個(gè)或多個(gè)文件的改變集合在一起形成一個(gè)邏輯單元,稱(chēng)為 changeset。每一個(gè) changeset由兩部分內(nèi)容描述,版本號(hào)和 changeset 標(biāo)識(shí),例如:changeset: 207:58e4906e69e3
冒號(hào)前面的數(shù)字代表版本號(hào),它用來(lái)標(biāo)識(shí)本地 changeset。這個(gè)版本號(hào)只有在用戶(hù)的本地repository 中才有意義。冒號(hào)后面的那個(gè)很長(zhǎng)的十六進(jìn)制串是 changeset標(biāo)識(shí), 它是確定changeset的全局唯一標(biāo)識(shí)符, 在所有包含這個(gè) changese 的 repository 中都相同。多個(gè)用戶(hù)之間討論changeset,一般使用這個(gè) changeset 標(biāo)識(shí),而不是上面說(shuō)的版本號(hào),因?yàn)橥耆锌赡苊總€(gè)用戶(hù)的 repository 中同樣的 changeset 版本號(hào)不同。
Head
Head 表示 repository 中每個(gè)分支最新的 revision,通常在合并幾個(gè)分支時(shí)會(huì)用到這個(gè)概念。
Tip
Tip 是最新的一個(gè) changeset 的版本號(hào)的一個(gè)別名。在命令中任何使用版本號(hào)的地方都可以使用 tip 來(lái)代替最新的 changeset的版本號(hào)。Tip在各個(gè)repository中是不同的,同時(shí)一個(gè)repository 中只有一個(gè) tip。
Log
Log 命令按時(shí)間順序從近到遠(yuǎn)的記錄著在 repository 中發(fā)生的每一次事件??梢酝ㄟ^(guò)指定-v診斷輸出選項(xiàng)來(lái)獲得更多更詳細(xì)的歷史信息,或者指定—debug選項(xiàng)來(lái)獲得歷史信息中的一切細(xì)節(jié)。
Mercurial通過(guò)hg命令加上關(guān)鍵字來(lái)進(jìn)行操作,可以遠(yuǎn)程同步、上傳代碼。
用法
拷貝(同步)源碼并提交修改:
$ hg clone repository (這里repository是源碼的地址)
$ cd hello
$ (edit files)
$ hg add (new files)
$ hg commit -m 'My changes'
$ hg push
創(chuàng)建新的hg項(xiàng)目,并提交:
$ hg init (project-directory)
$ cd (project-directory)
$ (add some files)
$ hg add
$ hg commit -m 'Initial commit'
單光子發(fā)射計(jì)算機(jī)斷層成像術(shù)(Single-Photon Emission Computed Tomography,SPECT)和正電子發(fā)射斷層成像術(shù)(Positron Emission Tomogra...
spectacle [簡(jiǎn)明英漢詞典] [5spektEkl] n.觀覽物, 展覽物, 公開(kāi)展示, 奇觀, 景象, 光景, (a pair of ~s)眼鏡 spectacles [簡(jiǎn)明英漢詞典] n....
有誰(shuí)知lgspectrum2有啥優(yōu)缺點(diǎn)
針對(duì)女性人群有豐富的拍照功能:1 : 水印相機(jī) 提供豐富的水印模板,并可將當(dāng)時(shí)的心情、位置、時(shí)間等信息與美麗的照片一起定格,留下那一瞬間的美。2 : 自動(dòng)語(yǔ)音拍照 ,徹底告別手動(dòng)模式,再也不用擔(dān)心用手...
格式:pdf
大?。?span id="9t2h1r4" class="single-tag-height">3.6MB
頁(yè)數(shù): 3頁(yè)
評(píng)分: 4.7
Clean COLORBOND? steel SPECTRUM Series( 潔面恒麗 ?板 Spectrum) 概述 Clean COLORBOND? steel SPECTRUM Series( 潔面恒麗 ? 板 Spectrum) 由博思格鋼鐵 研發(fā),采用特殊納米強(qiáng)化聚酯涂覆系統(tǒng),獨(dú)特的珠光效果,具有極佳的顏色和光澤保持力,使 您的建筑物彰顯不同品位。 抗灰塵粘附性能 Clean COLORBOND? steel SPECTRUM Series( 潔面恒麗 ? 板 Spectrum) 具有抗灰塵粘 附的性能,更能有效防止灰塵粘附造成的建筑物外觀污垢。能在各種環(huán)境下防止灰塵粘附,特 別適合灰塵漂浮較高的亞洲環(huán)境。革新的涂覆系統(tǒng)能有效防止細(xì)小的灰塵顆粒吸附在彩涂板表 面。灰塵顆粒以松散的狀態(tài)逗留在彩涂板表面時(shí),極易被雨水沖走,由此防止了灰塵粘附造成 的建筑物外觀污垢,