1. 程式人生 > >TortoiseSVN使用簡介(9/9)複製檔案及資料夾

TortoiseSVN使用簡介(9/9)複製檔案及資料夾

很多時候您會希望用某資料夾的復件來進行修改。等到確定此修改已經完畢了,再合併到原來的主要開發版本上。舉例來說,我們目前在working copy下面有如下的資料夾及檔案:

 

現在,我們要為trunk這個資料夾建立一個branch。假設我們希望這個資料夾是在E:/svn_repo/my_prj/trunk/my_new_branch_for_testing(須與Repository同根,實際的目錄將產生在當前trunk所在目錄的相應目錄,需要check out一下)。首先我們可以在trunk資料夾下面的空白處,或是直接在trunkicon下面按下滑鼠右鍵。

 

在選擇Branch/Tag…這個專案後,您將會看到如下的對話框出現。

 

請先確認From WC at URL: 中的資料夾是您要複製的來原始檔夾。接著,在To URL中輸入您要複製過去的路徑。通常我們會將所有的branch集中在一個資料夾下面。以上面的例子來說,branch檔案都會集中在branch的子資料夾下面。在To URL中您只需要輸入您要的資料夾即可。資料夾不存在時,會由SVN幫您建立。特別需要注意的是SVN因為斜線作為資料夾分隔字元,而非反斜線。

接著在Log message輸入您此次branch的目的為何。按下OK就可以了。

如果成功,將可以看到下面的畫面:

 

按下OK就可以關閉這個視窗了。如果您此時立刻去working copybranch

子資料夾下面,您將會失望的發現在該資料夾下面並沒有剛剛指定的資料夾存在。這是因為您working copy的部份還是舊的,您只需要在branch子資料夾下面進行SVN update就可以看到這個新增的檔案夾了。新增的資料夾就與原來的資料夾無關了。您可以任意對他進行編輯,一直到您確認好所有在branch下面該做的工作都完成後,您可以選擇將這個branch merge回原來的trunk資料夾,或者是保留它在branch中。

mergetrunk資料夾中,方法很簡單。以上面的例子來說,我們在D:/working/my_prj/trunk資料夾空白處,按下滑鼠右鍵,選擇Merge:

 

接著可以看到如下的畫面:

 

下一步,就進入如下視窗:

From: To: 是要問您打算從Branch中的哪個版本到哪個版本,merge回原來的trunk資料夾中。剩下的就是指定要mergerevision範圍。選好要整合的版本後下一步:

您可以通過Test merge按鈕,試作一次Merge。這個merge只會顯示一些資訊,不會真正的更新到trunk的資料夾去。只有按下Merge按鈕後,才會真正的將branch的檔案與trunk的檔案合併起來。

 

上面的資訊告訴我們在trunk資料夾下面的b.cppc.cpp已經被更改過了。如果您在現在到trunk資料夾下,會看到這兩個檔案處於被修改的狀態。

如果您確認這次的merge沒有問題,您可以直接使用commit來將這兩個被修改的檔案commitSVN repository上。如果有問題,您可以直接修改這兩個檔案,直到確認ok了,再行commit

 

一切順利的話,您就成功的將branch的檔案mergetrunk了。