1 安裝及下載client 端 2 什么是SVN(Subversion)? 3 為甚么要用SVN? 4 怎么樣在Windows下面建立SVN Repository? 5 建立一個(gè)Working目錄 6 新增檔案及目錄到Repository中 7 更新檔案及目錄 8 更新至特定版本 9 復(fù)制檔案及目錄 10 制作Tag或是Release 11 快速參考 11.1 取得(Checkout)Repository 11.2 更新(Update)檔案或目錄 11.3 新增(Add)檔案或目錄 11.4 提交(Commit)修改過(guò)的檔案或目錄 11.5 Copy/Tag/Branch/Release檔案或目錄 |
大部分的TortoiseSVN的操作都是透過(guò)檔案管理員及鼠標(biāo)右鍵就可以完成了。如果您之前使用過(guò)TortoiseCVS,應(yīng)該會(huì)對(duì)這種操作方式感到十分親切。
什么是SVN(Subversion)?有一個(gè)簡(jiǎn)單但不十分精確比喻:
SVN = 版本控制 + 備份服務(wù)器
簡(jiǎn)單的說(shuō),您可以把SVN當(dāng)成您的備份服務(wù)器,更好的是,他可以幫您記住每次上傳到這個(gè)服務(wù)器的檔案內(nèi)容。并且自動(dòng)的賦予每次的變更一個(gè)版本。
通常,我們稱(chēng)用來(lái)存放上傳檔案的地方就做Repository。用中文來(lái)說(shuō),有點(diǎn)像是檔案?jìng)}庫(kù)的意思。不過(guò),通常我們還是使用Repository這個(gè)名詞?;旧?,第一次我們需要有一個(gè)新增(add)檔案的動(dòng)作,將想要備份的檔案放到Repository上面。日后,當(dāng)您有任何修改時(shí),都可以上傳到Repository上面,上傳已經(jīng)存在且修改過(guò)的檔案就叫做commit,也就是提交修改給SVN server的意思。針對(duì)每次的commit,SVN server都會(huì)賦予他一個(gè)新的版本。同時(shí),也會(huì)把每次上傳的時(shí)間記錄下來(lái)。日后,因?yàn)槟承┮蛩?,如果您需要從Repository下載曾經(jīng)提交的檔案。您可以直接選擇取得最新的版本,也可以取得任何一個(gè)之前的版本。如果忘記了版本,還是可以靠記憶嘗試取得某個(gè)日期的版本。
為甚么要用SVN? 備份工作檔案是十分重要的。您永遠(yuǎn)不知道計(jì)算機(jī)上的硬盤(pán)何時(shí)會(huì)壞掉。根據(jù)經(jīng)驗(yàn)法則再加上摩菲定理,壞事情往往都發(fā)生在最重要的時(shí)刻。例如,要release東西的前一刻,硬盤(pán)完全壞掉,無(wú)法修復(fù)。所以,常常備份工作數(shù)據(jù)是非常重要的。大部分公司的server都會(huì)有專(zhuān)門(mén)的備份機(jī)制,甚至是異地備援。絕對(duì)比放在自己的計(jì)算機(jī)里頭,或是隨身碟上面來(lái)的安全。 版本控管非常重要。您無(wú)法保證手頭上最新版本永遠(yuǎn)都是對(duì)的。很多時(shí)候,在經(jīng)過(guò)數(shù)天努力工作后,您才發(fā)現(xiàn)走錯(cuò)方向。需要將所有的修改回復(fù)到數(shù)天前版本。沒(méi)有幾個(gè)人能夠完全記住自己修改過(guò)什么東西。如果沒(méi)有做好版本控管,那么,最差的狀況就是要全部重來(lái)。 伙伴間的數(shù)據(jù)同步也是非常重要的。很多時(shí)候,除了您個(gè)人外,還有其它的伙伴也需要您的檔案。怎么把最新的檔案提供給伙伴呢?用e-mail?根據(jù)經(jīng)驗(yàn),用e-mail是一個(gè)很差的辦法。到了最后,根本就不知道哪一封e-mail才是新的。因?yàn)榭赡苣钚碌膃-mail已經(jīng)被當(dāng)成垃圾信給丟了。別忘了,現(xiàn)在很多e-mail軟件都有anti-spam的功能,說(shuō)不定這些信件都被當(dāng)成廣告信給處理掉了。而且,您也應(yīng)該知道一般檔案如果放在e-mail內(nèi),檔案大小會(huì)變得比較大(通常是原來(lái)的4/3倍以上)。如果每天更新一次,恐怕幾天沒(méi)收信的話(huà),信箱就爆了! 如果沒(méi)有一個(gè)好的辦法,備份不同版本是很耗費(fèi)硬盤(pán)空間的。例如:您有一個(gè)總共10MB的目錄,使用單純的檔案?jìng)浞?。如果?0個(gè)版本就會(huì)變成100MB。20個(gè)版本就有200MB。如果,不想備份這么多版本,勢(shì)必就是要減少備份的次數(shù)。拉長(zhǎng)備份周期將會(huì)導(dǎo)致數(shù)據(jù)遺失的危險(xiǎn)性增高。把舊的不需要的備份刪除?根據(jù)經(jīng)驗(yàn),只要時(shí)間一拉長(zhǎng),您跟本就不知道一個(gè)月以前的版本是重要或者是不重要。SVN能幫我們解決上面的問(wèn)題嗎?答案是肯定的:
SVN Repository可以是自己計(jì)算機(jī)上的一個(gè)目錄,或者是隨身碟(不建議這樣用)。當(dāng)然也可以是公司的服務(wù)器。 SVN有很棒的版本控管機(jī)制。所有上傳的版本都會(huì)幫您記錄下來(lái)。日后您可以隨時(shí)取得某一個(gè)時(shí)刻的版本。而且,也有版本分支及合并等好用的功能。 SVN可以讓不同的開(kāi)發(fā)者存取同樣的檔案,并且利用SVN Server作為檔案同步的機(jī)制。也就是說(shuō),您有檔案更新時(shí),無(wú)須將檔案寄給您的開(kāi)發(fā)成員。只需要告訴他新的版本已經(jīng)在SVN Server上面,請(qǐng)他自己去SVN Server上面就可以取得最新版本。而且,SVN Server也可以做到當(dāng)您上傳新版本后,自動(dòng)發(fā)信給相關(guān)的成員。 SVN的存放檔案方式是采用差異備份的方式。也就是說(shuō),他只會(huì)備份有不同的地方。所以很省硬盤(pán)空間。此外,他也可以針對(duì)所謂的非文字文件進(jìn)行差異備份。 怎么樣在Windows下面建立SVN Repository?假設(shè)您已經(jīng)安裝前面所提及的TortoiseSVN這套軟件,現(xiàn)在我們先告訴您如何用自己的硬盤(pán)或是隨身碟當(dāng)作SVN Repository的存放地點(diǎn)。如果您只想知道如何存取一個(gè)已經(jīng)建立好的SVN Server上面的Repository,請(qǐng)直接跳過(guò)本節(jié)。
假設(shè)您的要放置Repository的地方是E槽。您需要先建立一個(gè)空的目錄。以下面的例子而言,我們?cè)贓槽下面建立了一個(gè)名為svn_repo的目錄。SVN并沒(méi)有限定Repository目錄名稱(chēng)。您可以建立任何您自己喜歡的名稱(chēng)。但是,強(qiáng)烈建議勿使用非英文的檔名(如中文或日文)。
透過(guò)您的檔案管理員,在E:\svn_repo的Icon上面,按下鼠標(biāo)右鍵后,選擇TortoiseSVN->Create repository here。
接著,您會(huì)看到如下的一個(gè)窗口,這個(gè)窗口主要是問(wèn)您,您希望使用的Repository數(shù)據(jù)庫(kù)格式是FSFS還是BDB。基本上,請(qǐng)選擇FSFS就可以了。按下OK按鈕后,您將可以看到下一個(gè)畫(huà)面。
這就表示您的SVN repository已經(jīng)成功的建立了。接下來(lái)就是要把您的檔案?jìng)浞葸M(jìn)來(lái)。日后,只要需要使用這個(gè)repository,我們就可以使用file:///E:/SVN_REPO表示它。SVN就是透過(guò)這種URL的方式到如何與Repository取得聯(lián)系。各種URL的格式如下:
file:///磁盤(pán)驅(qū)動(dòng)器|/repository所在目錄/子目錄http://賬號(hào)@服務(wù)器名稱(chēng)/ repository所在目錄/子目錄https://賬號(hào)@服務(wù)器名稱(chēng)/ repository所在目錄/子目錄svn+ssh://賬號(hào)@服務(wù)器名稱(chēng)/ repository所在目錄/子目錄
其中,http表示使用一般的超文字傳輸通訊協(xié)議。https表示使用加密的超文字傳輸通訊協(xié)議。svn+ssh表示透過(guò)SSH加密通訊的管道,進(jìn)行存取。
建立一個(gè)Working目錄所謂的Working目錄其實(shí)就是您平常用來(lái)存放工作檔案的地方。通常我們會(huì)等到自己的工作做的一個(gè)段落的時(shí)候再進(jìn)行備份。所以我們平常都是在Working目錄下面工作,等到適當(dāng)時(shí)機(jī)在commit到repository中。舉例來(lái)說(shuō),我們想在D槽下面建立一個(gè)名為working的目錄。首先先把這個(gè)目錄建立出來(lái)。
此時(shí),這個(gè)目錄應(yīng)該為空的。
在檔案管理員中按下右鍵后(您可以在working目錄的icon上按,也可進(jìn)入working目錄后,在空白的地方按),選擇SVN checkout。
接著您可以看到如下的畫(huà)面:
首先我們要填入的是repository的位置,對(duì)于SVN來(lái)說(shuō),repository的位置都是URL。由于我們前面已經(jīng)在E槽建立一個(gè)repository,因此,我們現(xiàn)在要在URL of repository這一欄填入file:///E:/svn_repo/。
接著,稍微看一下Checkout directory,這個(gè)字段應(yīng)該要指向您的working目錄。確認(rèn)后,按下OK按鈕,您應(yīng)該可以看到如下的訊息窗口。
這樣就表示動(dòng)作完成。按下OK按鈕后,再到您剛剛建立的目錄下。您將會(huì)看到working目錄下面多了一個(gè)名為.svn的目錄(這個(gè)目錄是隱藏的,如果您的檔案管理員沒(méi)有設(shè)定可以看到隱藏目錄,您將無(wú)法看到它) 。
SVN會(huì)在您的工作目錄下,以及其子目錄下建立這個(gè).svn的子目錄。您不應(yīng)該進(jìn)去這個(gè)目錄,尤其不應(yīng)該更動(dòng)這個(gè)目錄下面的任何內(nèi)容。否則會(huì)很可能會(huì)造成SVN無(wú)法正常運(yùn)作。
由于,原來(lái)的repository是空的,所以我們現(xiàn)在的working目錄也是空的。如果您現(xiàn)在checkout的是一個(gè)已經(jīng)有內(nèi)容的repository,您將會(huì)看到working目錄下面現(xiàn)在多了許多目錄及檔案。
如果您要在一個(gè)已經(jīng)存在的SVN Server上面checkout出上面的檔案,您只需要給定正確的URL以及working目錄的名稱(chēng)。就可以取得指定的檔案及目錄了。
新增檔案及目錄到Repository中假設(shè)您前面的動(dòng)作都無(wú)誤。現(xiàn)在您開(kāi)始開(kāi)發(fā)一個(gè)新的程序。假設(shè)您開(kāi)發(fā)的程序?qū)⒎旁谇懊娼⒌膚orking目錄下面的my_ prj子目錄。如下所示:
假設(shè)您已經(jīng)編輯好檔案,準(zhǔn)備把他們放到SVN的repository中。您需要在my_prj目錄的icon上面,按鼠標(biāo)右鍵,并且選擇TortoiseSVN->Add:
接著,TortoiseSVN會(huì)把準(zhǔn)備要加入的檔案及目錄,顯示給您看。打勾的就是等下要被加入到Repository中的。如果您有某些檔案或是目錄不想在這次加入,您可以讓該項(xiàng)目不要被勾選。如此,它就不會(huì)被加入到Repository去。
按下OK后,您將會(huì)看到如下的訊息窗口:
這樣就表示成功了。有一點(diǎn)要注意的是,這個(gè)Add的動(dòng)作并未真正的將檔案放到Repository中。僅僅是告知SVN準(zhǔn)備要在Repository中放入這些檔案。此時(shí),如果您透過(guò)檔案管理員查看這些檔案,應(yīng)該會(huì)看到一個(gè)白色紅底的驚嘆號(hào)在檔案icon的下方。
這是表示您的working目錄中的檔案與Repository中的檔案還沒(méi)有同步?,F(xiàn)在我們要多一個(gè)commit的動(dòng)作。讓這些檔案真正的放入到Repository中。您可以在my_prj目錄的icon上或者是my_prj目錄內(nèi)的空白處按下鼠標(biāo)右鍵,叫出如下的選單,并且選擇SVN commit。
緊接著,您將會(huì)看到如下的窗口出現(xiàn):
在這個(gè)窗口中,下半部會(huì)列出一個(gè)清單,讓您清楚的了解到哪些檔案要被commit到repository中。同樣的,如果您有檔案不想在這個(gè)時(shí)候commit到Repository,您可以取消選取的檔案,這樣他們就不會(huì)被commit到Repository中。
在檔案列表的上方是Message欄,您可以在欄中輸入本次commit的目的。這是十分重要的字段,當(dāng)您commit的次數(shù)很多時(shí),可以靠這個(gè)訊息知道版本與版本之間的差異。當(dāng)您輸入好Message,按下OK之后,就可以看到如下的窗口出現(xiàn),通知您已經(jīng)將指定的檔案送到Repository中。
您可以到先前的folder中,確定是否所有的檔案icon都有如下的綠色勾勾在上面,這樣代表您的檔案都正確無(wú)誤的到repository中。
有時(shí)候,因?yàn)閃indows本身的問(wèn)題,您可能會(huì)看到有些icon沒(méi)有變成綠色的勾勾。此時(shí),多按F5幾次,應(yīng)該就可以解決這個(gè)問(wèn)題。如果,仍然不行,表示您之前的commit動(dòng)作真的有問(wèn)題。請(qǐng)仔細(xì)檢查之前的commit動(dòng)作是否正確。
更新檔案及目錄為何需要更新?由于版本控制系統(tǒng)多半都是由許多人共同使用。所以,同樣的檔案可能還有人會(huì)去進(jìn)行編輯。為了確保您工作目錄中的檔案與Repository中的檔案是同步的。建議您在編輯前都先進(jìn)行更新的動(dòng)作。在此,我們都先假設(shè)您已經(jīng)將檔案check out過(guò)一次?,F(xiàn)在要說(shuō)明的是如何在一個(gè)check out過(guò)的目錄進(jìn)行update。在想要更新的檔案或目錄icon上面按下鼠標(biāo)右鍵。并且選擇SVN Update。
正常的狀況下,您可以看到如上的窗口。在這個(gè)窗口中會(huì)顯示有哪些文件更新了。如果沒(méi)有看到檔案更新的相關(guān)信息,這表示您的目錄中的檔案已經(jīng)是最新的,所以無(wú)須進(jìn)行更新。
更新至特定版本有時(shí)我們需要回溯至特定的日期或是版本,這時(shí)就可以利用SVN的Update to revision的功能。在想要更新的檔案或目錄icon上面按下鼠標(biāo)右鍵。并且選擇TortoiseSVN->Update to revision。
在這個(gè)Update窗口中,您可以選擇更新到最新版本(HEAD)。也可以選擇更新到某個(gè)指定的版本(Revision)。當(dāng)然,您可能早就記不起來(lái)正確的版本號(hào)碼??赡苤浑[約的記得大概在什么時(shí)間。沒(méi)關(guān)系,按下Show log按鈕,您就可以回顧歷史了。
所有您曾經(jīng)做過(guò)的動(dòng)作,及其日期與對(duì)應(yīng)的版本都會(huì)列在這個(gè)窗口上面,只要在你想要的版上面點(diǎn)一下,讓他變成反白,然后按下OK。這個(gè)版本就會(huì)自動(dòng)填入U(xiǎn)pdate窗口中的Revision字段中。您只要再按下一次OK,這個(gè)版本就會(huì)被取出來(lái)到您的硬盤(pán)中。
復(fù)制檔案及目錄很多時(shí)候您會(huì)希望有另外一個(gè)復(fù)制的目錄來(lái)進(jìn)行新的編修。等到確定這個(gè)分支的修改已經(jīng)完畢了,再合并到原來(lái)的主要開(kāi)發(fā)版本上。舉例來(lái)說(shuō),我們目前在working copy下面有如下的目錄及檔案:
現(xiàn)在,我們要為trunk這個(gè)目錄建立一個(gè)branch。假設(shè)我們希望這個(gè)目錄是在D:\working\my_prj\branch\my_new_branch_for_testing。首先我們可以在trunk目錄下面的空白處,或是直接在trunk的icon下面按下鼠標(biāo)右鍵。
在選擇Branch/Tag…這個(gè)項(xiàng)目后,您將會(huì)看到如下的對(duì)話(huà)框出現(xiàn)。
請(qǐng)先確認(rèn)From WC at URL: 中的目錄是您要復(fù)制的來(lái)源目錄。接著,在To URL中輸入您要復(fù)制過(guò)去的路徑。通常我們會(huì)將所有的branch集中在一個(gè)目錄下面。以上面的例子來(lái)說(shuō),branch檔案都會(huì)集中在branch的子目錄下面。在To URL中您只需要輸入您要的目錄即可。目錄不存在時(shí),會(huì)由SVN幫您建立。特別需要注意的是SVN因?yàn)樾本€(xiàn)作為目錄分隔字符,而非反斜線(xiàn)。
接著在Log message輸入您此次branch的目的為何。按下OK就可以了。
如果成功,將可以看到下面的畫(huà)面:
按下OK就可以關(guān)閉這個(gè)窗口了。如果您此時(shí)立刻去working copy的branch子目錄下面,您將會(huì)失望的發(fā)現(xiàn)在該目錄下面并沒(méi)有剛剛指定的目錄存在。這是因?yàn)槟鷚orking copy的部份還是舊的,您只需要在branch子目錄下面進(jìn)行SVN update就可以看到這個(gè)新增的目錄了。新增的目錄就與原來(lái)的目錄無(wú)關(guān)了。您可以任意對(duì)他進(jìn)行編輯,一直到您確認(rèn)好所有在branch下面該做的工作都完成后,您可以選擇將這個(gè)branch merge回原來(lái)的trunk目錄,或者是保留它在branch中。
要merge回trunk目錄中,方法很簡(jiǎn)單。以上面的例子來(lái)說(shuō),我們?cè)贒:\working\my_prj\trunk目錄空白處,按下鼠標(biāo)右鍵,選擇Merge:
接著可以看到如下的畫(huà)面:
這個(gè)畫(huà)面主要分為三個(gè)部份,前面的From: 與 To: 是要問(wèn)您打算從Branch中的哪個(gè)版本到哪個(gè)版本,merge回原來(lái)的trunk目錄中。因此,F(xiàn)rom跟To的URL字段應(yīng)當(dāng)都是指定原來(lái)branch的目錄下。剩下的就是指定要merge的revision范圍。以上面的例子而言,我們從Branch的Revision 7開(kāi)始merge到Branch下面的最新版本。您可以透過(guò),Dry run按鈕,試作一次Merge。這個(gè)merge只會(huì)顯示一些訊息,不會(huì)真正的更新到trunk的目錄去。只有按下Merge按鈕后,才會(huì)真正的將branch的檔案與trunk的檔案合并起來(lái)。
上面的訊息告訴我們?cè)趖runk目錄下面的yyyy.cpp及xxx1.cpp已經(jīng)被更改過(guò)了。如果您在現(xiàn)在到trunk目錄下,會(huì)看到這兩個(gè)檔案處于被修改的狀態(tài)。
如果您確認(rèn)這次的merge沒(méi)有問(wèn)題,您可以直接使用commit來(lái)將這兩個(gè)被修改的檔案commit回SVN repository上。如果有問(wèn)題,您可以直接修改這兩個(gè)檔案,直到確認(rèn)ok了,再行commit。
一切順利的話(huà),您就成功的將branch的檔案merge回trunk了。
制作Tag或是Release所謂的Tag或是Release就是一個(gè)特別的版本,因?yàn)檫@個(gè)版本可能有特別的意義。例如:這個(gè)版本是特別的Milestone或是release給客戶(hù)的版本。其實(shí),Tag與Release的作法與Branch完全相同。只是Branch可能會(huì)需要merge回原來(lái)的trunk中,而tag及release大部分都不需要merge回trunk中。舉例來(lái)說(shuō),今天我們的trunk做了一版,這個(gè)版本被認(rèn)定是軟件的1.0版。1.0版對(duì)于開(kāi)發(fā)來(lái)說(shuō)是一個(gè)非常重要的里程碑。所以我們要特別為他做一個(gè)標(biāo)記,亦即Tag。假設(shè),這個(gè) 1.0版是要正式release給客戶(hù)或是相關(guān)vendor,我們要可以為他做一個(gè)Release的標(biāo)記?;旧希琒VN只有目錄的概念,并沒(méi)有什么Tag的用法。所以您會(huì)看到再SVN的選單上面,Branch與Tag是同一個(gè)項(xiàng)目。以這個(gè)1.0的例子來(lái)說(shuō),我們就是在Trunk上面,按下鼠標(biāo)右鍵,選擇Branch/Tag的項(xiàng)目:
成功的話(huà),您就在Tag目錄下面建立了一個(gè)1.0的目錄。當(dāng)然,如果您這時(shí)到Tag的目錄下面去,會(huì)看不到這個(gè)目錄,您需要在Tag目錄下面update一下,才能看到它。
制作Release的作法與Tag完全相同。只是把Tag的目錄換成Release而已。
看到這里,相信大家都已經(jīng)領(lǐng)悟到無(wú)論是Branch,Tag或是Release都只是將指定的Trunk版本復(fù)制一份到另外一個(gè)目錄去。至于這個(gè)目錄要叫Branch還是叫Release,SVN根本就不管。所以,您也可取其它的目錄名稱(chēng)。不過(guò),Branch,Tag及Release已經(jīng)是SVN上面約定成俗的名稱(chēng)。所以,除非您知道自己為何這樣做,否則,最好還是follow這個(gè)命名原則,以免后面新加入的人看不懂。
NOTE:同樣的道理Trunk也只是一個(gè)約定成俗的名稱(chēng)。不一定要叫Trunk。只是大家看到Trunk目錄就會(huì)知道這里面放的是主要的開(kāi)發(fā)主干。
快速參考前面寫(xiě)了不少?gòu)U話(huà),主要是給完全沒(méi)有版本控制觀(guān)念的人看的。如果你想直接知道某個(gè)功能如何使用,請(qǐng)看下面的章節(jié)。
在后面的說(shuō)明,皆以d:\working當(dāng)作工作目錄。您可以將他換成其它任何您想要的目錄。
取得(Checkout)Repository 開(kāi)啟檔案管理員,進(jìn)入d: 在檔案管理員空白處按下鼠標(biāo)右鍵,選擇SVN Checkout 在Checkout對(duì)話(huà)框中, URL of repository:repository的位置。 Checkout directory:要存放working copy的地方。 若d:\working目錄不存在,SVN會(huì)問(wèn)您要不要建立這個(gè)目錄,請(qǐng)選擇Yes。 接著按下OK,即可checkout該目錄。 更新(Update)檔案或目錄 在您要由repository更新至working copy的檔案或是目錄的icon上面按下鼠標(biāo)右鍵。選擇SVN Update即可。 如果是要更新至特定的版本,則選擇TortoiseSVN->Update to revision。并且在Update對(duì)話(huà)框中的Revision字段輸入您要的版本。也可以透過(guò)Show Log按鈕來(lái)查看版本的信息。 新增(Add)檔案或目錄 在尚不屬于repository的檔案或目錄的icon上按下鼠標(biāo)右鍵。選擇TortoiseSVN->Add。 選取要新增的檔案。 按下OK。NOTE:新增的檔案要經(jīng)過(guò)提交(Commit)的動(dòng)作才回真正的放入Repository中。
提交(Commit)修改過(guò)的檔案或目錄 在修改過(guò)的檔案,或是在整個(gè)目錄的空白處按下鼠標(biāo)右鍵。 勾選真正要提交至Repository的檔案或目錄。 輸入本次提交的紀(jì)錄訊息(Message)。這個(gè)訊息應(yīng)該要清楚明了,但不應(yīng)過(guò)份簡(jiǎn)單。以利日后版本追蹤。 按下OK。 Copy/Tag/Branch/Release檔案或目錄 確認(rèn)您要處理的檔案或是目錄已經(jīng)是Repository中最新的版本。 在要處理的目錄或是檔案上面按下鼠標(biāo)右鍵,選擇TortoiseSVN->Branch/Tag。 在To URL處輸入您要的目的地。 branch:要產(chǎn)生一個(gè)分支。以區(qū)別與trunk不同的開(kāi)發(fā)。 tag:要形成一個(gè)標(biāo)記,表示重要的milestone。 release:表示一個(gè)已經(jīng)正式的release的紀(jì)錄。 其它:進(jìn)行一個(gè)復(fù)制(copy)。關(guān)鍵詞: TortoiseSVN