svn在linux下的使用指令
1、将檔案checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
簡寫:svn co
2、往版本庫中添加新的檔案
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加目前目錄下所有的php檔案)
3、将改動的檔案送出到版本庫
svn commit -m "注釋資訊" [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用--no-unlock開關)
例如:svn commit -m "add test file for my test" test.php
簡寫:svn ci
4、加鎖/解鎖
svn lock -m "注釋資訊" [--force] PATH
例如:svn lock -m "lock test file" test.php(給檔案 teat.php加鎖)
svn unlock PATH(給檔案或目錄解鎖)
5、更新到某個版本
svn update -r m path
例如:
svn update如果後面沒有目錄,預設将目前目錄以及子目錄下的所有檔案都更新到最新版本。
svn update -r 200 test.php(将版本庫中的檔案test.php還原到版本200)
svn update test.php(更新,于版本庫同步。如果在送出的時候提示過期的話,是因為沖突,需要先update,修改檔案,然後清除svn resolved,最後再送出commit)
簡寫:svn up
6、檢視檔案或者目錄狀态
1)svn status path(目錄下的檔案和子目錄的狀态,正常狀态不顯示)
?:不在svn的控制中;
M:内容被修改;
C:發生沖突;
A:預定加入到版本庫;
K:被鎖定
2)svn status -v path(顯示檔案和子目錄狀态)
第一列保持相同,第二列顯示工作版本号,第三和第四列顯示最後一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert這三條指令在沒有網絡的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
簡寫:svn st
7、删除檔案
svn delete path -m "delete test fle"
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然後再svn ci -m 'delete test file‘,推薦使用這種
簡寫:svn (del, remove, rm)
8、檢視日志
svn log path
例如:svn log test.php 顯示這個檔案的所有修改記錄,及其版本号的變化
9、檢視檔案詳細資訊
svn info path
例如:svn info test.php
10、比較差異
svn diff path(将修改的檔案與基礎版本比較)
例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差異)
例如:svn diff -r 200:201 test.php
簡寫:svn di
11、将兩個版本之間的差異合并到目前檔案
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200與205之間的差異合并到目前檔案,但是一般都會産生沖突,需要處理一下)
12、SVN 幫助
svn help
svn help ci------------------------------------------------------------------------------
以上是常用指令,下面寫幾個不經常用的
------------------------------------------------------------------------------
13、版本庫下的檔案和目錄清單
svn list path
顯示path目錄下的所有屬于版本庫的檔案和目錄
簡寫:svn ls
14、建立納入版本控制下的新目錄
svn mkdir: 建立納入版本控制下的新目錄。
用法: 1、mkdir PATH...
2、mkdir URL...
建立版本控制的目錄。
1、每一個以工作副本 PATH 指定的目錄,都會建立在本地端,并且加入新增
排程,以待下一次的送出。
2、每個以URL指定的目錄,都會透過立即送出于倉庫中建立。
在這兩個情況下,所有的中間目錄都必須事先存在。
15、恢複本地修改
svn revert: 恢複原始未改變的工作副本檔案 (恢複大部份的本地修改)。revert:
用法: revert PATH...
注意: 本子指令不會存取網絡,并且會解除沖突的狀況。但是它不會恢複
被删除的目錄
16、代碼庫URL變更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch --relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一個新的URL,其行為跟“svn update”很像,也會将伺服器上檔案與本地檔案合并。這是将工作副本對應到同一倉庫中某個分支或者标記的
方法。
2、改寫工作副本的URL中繼資料,以反映單純的URL上的改變。當倉庫的根URL變動
(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用
這個指令更新工作副本與倉庫的對應關系。
17、解決沖突
svn resolved: 移除工作副本的目錄或檔案的“沖突”狀态。
用法: resolved PATH...
注意: 本子指令不會依文法來解決沖突或是移除沖突标記;它隻是移除沖突的
相關檔案,然後讓 PATH 可以再次送出。
18、輸出指定檔案或URL的内容。
svn cat 目标[@版本]...如果指定了版本,将從指定的版本開始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本号,這樣輸出結果是可以送出的)
<a href="http://www.uml.org.cn/pzgl/200904246.asp#1" target="_blank">1 安裝及下載下傳client 端</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#2" target="_blank">2 什麼是SVN(Subversion)?</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#3" target="_blank">3 為甚麼要用SVN?</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#4" target="_blank">4 怎麼樣在Windows下面建立SVN Repository?</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#5" target="_blank">5 建立一個Working目錄</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#6" target="_blank">6 新增檔案及目錄到Repository中</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#7" target="_blank">7 更新檔案及目錄</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#8" target="_blank">8 更新至特定版本</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#9" target="_blank">9 複制檔案及目錄</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#10" target="_blank">10 制作Tag或是Release</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#11" target="_blank">11 快速參考</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#111" target="_blank">11.1 取得(Checkout)Repository</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#112" target="_blank">11.2 更新(Update)檔案或目錄</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#113" target="_blank">11.3 新增(Add)檔案或目錄</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#114" target="_blank">11.4 送出(Commit)修改過的檔案或目錄</a>
<a href="http://www.uml.org.cn/pzgl/200904246.asp#115" target="_blank">11.5 Copy/Tag/Branch/Release檔案或目錄</a>
下載下傳Windows 端程式:http://tortoisesvn.net/downloads。一般而言,如果是32-bit的Windows XP 應該使用TortoiseSVN-1.4.x.xxxx-win32-svn-1.4.x.msi 這個檔案。如果是64-bit 的作業系統,則應該使用TortoiseSVN-1.4.x.xxxx-x64-svn-1.4.x.msi 這個檔案。
執行下載下傳回來的TortoiseSVN 安裝程式,就會進行TortoiseSVN 的安裝。正确安裝後,應該進行一次的重開機,以確定TortoiseSVN 的正确無誤。
安裝成功後,在檔案管理者内按下滑鼠右鍵,應該可以看到如下的畫面:

大部分的TortoiseSVN的操作都是透過檔案管理者及滑鼠右鍵就可以完成了。如果您之前使用過TortoiseCVS,應該會對這種操作方式感到十分親切。
有一個簡單但不十分精确比喻:
SVN = 版本控制 + 備份伺服器
簡單的說,您可以把SVN當成您的備份伺服器,更好的是,他可以幫您記住每次上傳到這個伺服器的檔案内容。并且自動的賦予每次的變更一個版本。
通常,我們稱用來存放上傳檔案的地方就做Repository。用中文來說,有點像是檔案倉庫的意思。不過,通常我們還是使用Repository這個名詞。基本上,第一次我們需要有一個新增(add)檔案的動作,将想要備份的檔案放到Repository上面。日後,當您有任何修改時,都可以上傳到Repository上面,上傳已經存在且修改過的檔案就叫做commit,也就是送出修改給SVN server的意思。針對每次的commit,SVN server都會賦予他一個新的版本。同時,也會把每次上傳的時間記錄下來。日後,因為某些因素,如果您需要從Repository下載下傳曾經送出的檔案。您可以直接選擇取得最新的版本,也可以取得任何一個之前的版本。如果忘記了版本,還是可以靠記憶嘗試取得某個日期的版本。
備份工作檔案是十分重要的。您永遠不知道計算機上的硬碟何時會壞掉。根據經驗法則再加上摩菲定理,壞事情往往都發生在最重要的時刻。例如,要release東西的前一刻,硬碟完全壞掉,無法修複。是以,常常備份工作資料是非常重要的。大部分公司的server都會有專門的備份機制,甚至是異地備援。絕對比放在自己的計算機裡頭,或是随身碟上面來的安全。
版本控管非常重要。您無法保證手頭上最新版本永遠都是對的。很多時候,在經過數天努力工作後,您才發現走錯方向。需要将所有的修改回複到數天前版本。沒有幾個人能夠完全記住自己修改過什麼東西。如果沒有做好版本控管,那麼,最差的狀況就是要全部重來。
夥伴間的資料同步也是非常重要的。很多時候,除了您個人外,還有其它的夥伴也需要您的檔案。怎麼把最新的檔案提供給夥伴呢?用e-mail?根據經驗,用e-mail是一個很差的辦法。到了最後,根本就不知道哪一封e-mail才是新的。因為可能您最新的e-mail已經被當成垃圾信給丢了。别忘了,現在很多e-mail軟體都有anti-spam的功能,說不定這些信件都被當成廣告信給處理掉了。而且,您也應該知道一般檔案如果放在e-mail内,檔案大小會變得比較大(通常是原來的4/3倍以上)。如果每天更新一次,恐怕幾天沒收信的話,信箱就爆了!
如果沒有一個好的辦法,備份不同版本是很耗費硬碟空間的。例如:您有一個總共10MB的目錄,使用單純的檔案備份。如果有10個版本就會變成100MB。20個版本就有200MB。如果,不想備份這麼多版本,勢必就是要減少備份的次數。拉長備份周期将會導緻資料遺失的危險性增高。把舊的不需要的備份删除?根據經驗,隻要時間一拉長,您跟本就不知道一個月以前的版本是重要或者是不重要。
SVN能幫我們解決上面的問題嗎?答案是肯定的:
SVN Repository可以是自己計算機上的一個目錄,或者是随身碟(不建議這樣用)。當然也可以是公司的伺服器。
SVN有很棒的版本控管機制。所有上傳的版本都會幫您記錄下來。日後您可以随時取得某一個時刻的版本。而且,也有版本分支及合并等好用的功能。
SVN可以讓不同的開發者存取同樣的檔案,并且利用SVN Server作為檔案同步的機制。也就是說,您有檔案更新時,無須将檔案寄給您的開發成員。隻需要告訴他新的版本已經在SVN Server上面,請他自己去SVN Server上面就可以取得最新版本。而且,SVN Server也可以做到當您上傳新版本後,自動發信給相關的成員。
SVN的存放檔案方式是采用差異備份的方式。也就是說,他隻會備份有不同的地方。是以很省硬碟空間。此外,他也可以針對所謂的非文字檔案進行差異備份。
假設您已經安裝前面所提及的TortoiseSVN這套軟體,現在我們先告訴您如何用自己的硬碟或是随身碟當作SVN Repository的存放地點。如果您隻想知道如何存取一個已經建立好的SVN Server上面的Repository,請直接跳過本節。
假設您的要放置Repository的地方是E槽。您需要先建立一個空的目錄。以下面的例子而言,我們在E槽下面建立了一個名為svn_repo的目錄。SVN并沒有限定Repository目錄名稱。您可以建立任何您自己喜歡的名稱。但是,強烈建議勿使用非英文的檔名(如中文或日文)。
透過您的檔案管理者,在E:\svn_repo的Icon上面,按下滑鼠右鍵後,選擇TortoiseSVN->Create repository here。
接着,您會看到如下的一個視窗,這個視窗主要是問您,您希望使用的Repository資料庫格式是FSFS還是BDB。基本上,請選擇FSFS就可以了。按下OK按鈕後,您将可以看到下一個畫面。
這就表示您的SVN repository已經成功的建立了。接下來就是要把您的檔案備份進來。日後,隻要需要使用這個repository,我們就可以使用file:///E:/SVN_REPO表示它。SVN就是透過這種URL的方式到如何與Repository取得聯系。各種URL的格式如下:
file:///磁盤驅動器|/repository所在目錄/子目錄http://賬号@伺服器名稱/ repository所在目錄/子目錄https://賬号@伺服器名稱/ repository所在目錄/子目錄svn+ssh://賬号@伺服器名稱/ repository所在目錄/子目錄
其中,http表示使用一般的超文字傳輸通訊協定。https表示使用加密的超文字傳輸通訊協定。svn+ssh表示透過SSH加密通訊的管道,進行存取。
所謂的Working目錄其實就是您平常用來存放工作檔案的地方。通常我們會等到自己的工作做的一個段落的時候再進行備份。是以我們平常都是在Working目錄下面工作,等到适當時機在commit到repository中。舉例來說,我們想在D槽下面建立一個名為working的目錄。首先先把這個目錄建立出來。
此時,這個目錄應該為空的。
在檔案管理者中按下右鍵後(您可以在working目錄的icon上按,也可進入working目錄後,在空白的地方按),選擇SVN checkout。
接着您可以看到如下的畫面:
首先我們要填入的是repository的位置,對于SVN來說,repository的位置都是URL。由于我們前面已經在E槽建立一個repository,是以,我們現在要在URL of repository這一欄填入file:///E:/svn_repo/。
接着,稍微看一下Checkout directory,這個字段應該要指向您的working目錄。确認後,按下OK按鈕,您應該可以看到如下的訊息視窗。
這樣就表示動作完成。按下OK按鈕後,再到您剛剛建立的目錄下。您将會看到working目錄下面多了一個名為.svn的目錄(這個目錄是隐藏的,如果您的檔案管理者沒有設定可以看到隐藏目錄,您将無法看到它) 。
SVN會在您的工作目錄下,以及其子目錄下建立這個.svn的子目錄。您不應該進去這個目錄,尤其不應該更動這個目錄下面的任何内容。否則會很可能會造成SVN無法正常運作。
由于,原來的repository是空的,是以我們現在的working目錄也是空的。如果您現在checkout的是一個已經有内容的repository,您将會看到working目錄下面現在多了許多目錄及檔案。
如果您要在一個已經存在的SVN Server上面checkout出上面的檔案,您隻需要給定正确的URL以及working目錄的名稱。就可以取得指定的檔案及目錄了。
假設您前面的動作都無誤。現在您開始開發一個新的程式。假設您開發的程式将放在前面建立的working目錄下面的my_ prj子目錄。如下所示:
假設您已經編輯好檔案,準備把他們放到SVN的repository中。您需要在my_prj目錄的icon上面,按滑鼠右鍵,并且選擇TortoiseSVN->Add:
接着,TortoiseSVN會把準備要加入的檔案及目錄,顯示給您看。打勾的就是等下要被加入到Repository中的。如果您有某些檔案或是目錄不想在這次加入,您可以讓該項目不要被勾選。如此,它就不會被加入到Repository去。
按下OK後,您将會看到如下的訊息視窗:
這樣就表示成功了。有一點要注意的是,這個Add的動作并未真正的将檔案放到Repository中。僅僅是告知SVN準備要在Repository中放入這些檔案。此時,如果您透過檔案管理者檢視這些檔案,應該會看到一個白色紅底的驚歎号在檔案icon的下方。
這是表示您的working目錄中的檔案與Repository中的檔案還沒有同步。現在我們要多一個commit的動作。讓這些檔案真正的放入到Repository中。您可以在my_prj目錄的icon上或者是my_prj目錄内的空白處按下滑鼠右鍵,叫出如下的選單,并且選擇SVN commit。
緊接着,您将會看到如下的視窗出現:
在這個視窗中,下半部會列出一個清單,讓您清楚的了解到哪些檔案要被commit到repository中。同樣的,如果您有檔案不想在這個時候commit到Repository,您可以取消選取的檔案,這樣他們就不會被commit到Repository中。
在檔案清單的上方是Message欄,您可以在欄中輸入本次commit的目的。這是十分重要的字段,當您commit的次數很多時,可以靠這個訊息知道版本與版本之間的差異。當您輸入好Message,按下OK之後,就可以看到如下的視窗出現,通知您已經将指定的檔案送到Repository中。
您可以到先前的folder中,确定是否所有的檔案icon都有如下的綠色勾勾在上面,這樣代表您的檔案都正确無誤的到repository中。
有時候,因為Windows本身的問題,您可能會看到有些icon沒有變成綠色的勾勾。此時,多按F5幾次,應該就可以解決這個問題。如果,仍然不行,表示您之前的commit動作真的有問題。請仔細檢查之前的commit動作是否正确。
為何需要更新?由于版本控制系統多半都是由許多人共同使用。是以,同樣的檔案可能還有人會去進行編輯。為了確定您工作目錄中的檔案與Repository中的檔案是同步的。建議您在編輯前都先進行更新的動作。在此,我們都先假設您已經将檔案check out過一次。現在要說明的是如何在一個check out過的目錄進行update。在想要更新的檔案或目錄icon上面按下滑鼠右鍵。并且選擇SVN Update。
正常的狀況下,您可以看到如上的視窗。在這個視窗中會顯示有哪些檔案更新了。如果沒有看到檔案更新的相關資訊,這表示您的目錄中的檔案已經是最新的,是以無須進行更新。
有時我們需要回溯至特定的日期或是版本,這時就可以利用SVN的Update to revision的功能。在想要更新的檔案或目錄icon上面按下滑鼠右鍵。并且選擇TortoiseSVN->Update to revision。
在這個Update視窗中,您可以選擇更新到最新版本(HEAD)。也可以選擇更新到某個指定的版本(Revision)。當然,您可能早就記不起來正确的版本号碼。可能隻隐約的記得大概在什麼時間。沒關系,按下Show log按鈕,您就可以回顧曆史了。
所有您曾經做過的動作,及其日期與對應的版本都會列在這個視窗上面,隻要在你想要的版上面點一下,讓他變成反白,然後按下OK。這個版本就會自動填入Update視窗中的Revision字段中。您隻要再按下一次OK,這個版本就會被取出來到您的硬碟中。
很多時候您會希望有另外一個複制的目錄來進行新的編修。等到确定這個分支的修改已經完畢了,再合并到原來的主要開發版本上。舉例來說,我們目前在working copy下面有如下的目錄及檔案:
現在,我們要為trunk這個目錄建立一個branch。假設我們希望這個目錄是在D:\working\my_prj\branch\my_new_branch_for_testing。首先我們可以在trunk目錄下面的空白處,或是直接在trunk的icon下面按下滑鼠右鍵。
在選擇Branch/Tag…這個項目後,您将會看到如下的對話框出現。
請先确認From WC at URL: 中的目錄是您要複制的來源目錄。接着,在To URL中輸入您要複制過去的路徑。通常我們會将所有的branch集中在一個目錄下面。以上面的例子來說,branch檔案都會集中在branch的子目錄下面。在To URL中您隻需要輸入您要的目錄即可。目錄不存在時,會由SVN幫您建立。特别需要注意的是SVN因為斜線作為目錄分隔字元,而非反斜線。
接着在Log message輸入您此次branch的目的為何。按下OK就可以了。
如果成功,将可以看到下面的畫面:
按下OK就可以關閉這個視窗了。如果您此時立刻去working copy的branch子目錄下面,您将會失望的發現在該目錄下面并沒有剛剛指定的目錄存在。這是因為您working copy的部份還是舊的,您隻需要在branch子目錄下面進行SVN update就可以看到這個新增的目錄了。新增的目錄就與原來的目錄無關了。您可以任意對他進行編輯,一直到您确認好所有在branch下面該做的工作都完成後,您可以選擇将這個branch merge回原來的trunk目錄,或者是保留它在branch中。
要merge回trunk目錄中,方法很簡單。以上面的例子來說,我們在D:\working\my_prj\trunk目錄空白處,按下滑鼠右鍵,選擇Merge:
接着可以看到如下的畫面:
這個畫面主要分為三個部份,前面的From: 與 To: 是要問您打算從Branch中的哪個版本到哪個版本,merge回原來的trunk目錄中。是以,From跟To的URL字段應當都是指定原來branch的目錄下。剩下的就是指定要merge的revision範圍。以上面的例子而言,我們從Branch的Revision 7開始merge到Branch下面的最新版本。您可以透過,Dry run按鈕,試作一次Merge。這個merge隻會顯示一些訊息,不會真正的更新到trunk的目錄去。隻有按下Merge按鈕後,才會真正的将branch的檔案與trunk的檔案合并起來。
上面的訊息告訴我們在trunk目錄下面的yyyy.cpp及xxx1.cpp已經被更改過了。如果您在現在到trunk目錄下,會看到這兩個檔案處于被修改的狀态。
如果您确認這次的merge沒有問題,您可以直接使用commit來将這兩個被修改的檔案commit回SVN repository上。如果有問題,您可以直接修改這兩個檔案,直到确認ok了,再行commit。
一切順利的話,您就成功的将branch的檔案merge回trunk了。
所謂的Tag或是Release就是一個特别的版本,因為這個版本可能有特别的意義。例如:這個版本是特别的Milestone或是release給客戶的版本。其實,Tag與Release的作法與Branch完全相同。隻是Branch可能會需要merge回原來的trunk中,而tag及release大部分都不需要merge回trunk中。舉例來說,今天我們的trunk做了一版,這個版本被認定是軟體的1.0版。1.0版對于開發來說是一個非常重要的裡程碑。是以我們要特别為他做一個标記,亦即Tag。假設,這個 1.0版是要正式release給客戶或是相關vendor,我們要可以為他做一個Release的标記。基本上,SVN隻有目錄的概念,并沒有什麼Tag的用法。是以您會看到再SVN的選單上面,Branch與Tag是同一個項目。以這個1.0的例子來說,我們就是在Trunk上面,按下滑鼠右鍵,選擇Branch/Tag的項目:
成功的話,您就在Tag目錄下面建立了一個1.0的目錄。當然,如果您這時到Tag的目錄下面去,會看不到這個目錄,您需要在Tag目錄下面update一下,才能看到它。
制作Release的作法與Tag完全相同。隻是把Tag的目錄換成Release而已。
看到這裡,相信大家都已經領悟到無論是Branch,Tag或是Release都隻是将指定的Trunk版本複制一份到另外一個目錄去。至于這個目錄要叫Branch還是叫Release,SVN根本就不管。是以,您也可取其它的目錄名稱。不過,Branch,Tag及Release已經是SVN上面約定成俗的名稱。是以,除非您知道自己為何這樣做,否則,最好還是follow這個命名原則,以免後面新加入的人看不懂。
前面寫了不少廢話,主要是給完全沒有版本控制觀念的人看的。如果你想直接知道某個功能如何使用,請看下面的章節。
在後面的說明,皆以d:\working當作工作目錄。您可以将他換成其它任何您想要的目錄。
開啟檔案管理者,進入d:
在檔案管理者空白處按下滑鼠右鍵,選擇SVN Checkout
在Checkout對話框中,
URL of repository:repository的位置。
Checkout directory:要存放working copy的地方。
若d:\working目錄不存在,SVN會問您要不要建立這個目錄,請選擇Yes。
接着按下OK,即可checkout該目錄。
在您要由repository更新至working copy的檔案或是目錄的icon上面按下滑鼠右鍵。選擇SVN Update即可。
如果是要更新至特定的版本,則選擇TortoiseSVN->Update to revision。并且在Update對話框中的Revision字段輸入您要的版本。也可以透過Show Log按鈕來檢視版本的資訊。
在尚不屬于repository的檔案或目錄的icon上按下滑鼠右鍵。選擇TortoiseSVN->Add。
選取要新增的檔案。
按下OK。
在修改過的檔案,或是在整個目錄的空白處按下滑鼠右鍵。
勾選真正要送出至Repository的檔案或目錄。
輸入本次送出的紀錄訊息(Message)。這個訊息應該要清楚明了,但不應過份簡單。以利日後版本追蹤。
确認您要處理的檔案或是目錄已經是Repository中最新的版本。
在要處理的目錄或是檔案上面按下滑鼠右鍵,選擇TortoiseSVN->Branch/Tag。
在To URL處輸入您要的目的地。
branch:要産生一個分支。以差別與trunk不同的開發。
tag:要形成一個标記,表示重要的milestone。
release:表示一個已經正式的release的紀錄。
其它:進行一個複制(copy)。