天天看點

TortoiseSVN 使用簡介(3)

接着在Log message輸入您此次branch的目的為何。按下OK就可以了。 如果成功,将可以看到下面的畫面: 按下OK就可以關閉這個視窗了。如果您此時立刻去working copy的branch子目錄下面,您将會失望的發現在該目錄下面

-

接着在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

所謂的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的目錄換成Rel

-

成功的話,您就在Tag目錄下面建立了一個1.0的目錄。當然,如果您這時到Tag的目錄下面去,會看不到這個目錄,您需要在Tag目錄下面update一下,才能看到它。

制作Release的作法與Tag完全相同。隻是把Tag的目錄換成Release而已。

看到這裡,相信大家都已經領悟到無論是Branch,Tag或是Release都隻是将指定的Trunk版本複制一份到另外一個目錄去。至于這個目錄要叫Branch還是叫Release,SVN根本就不管。是以,您也可取其它的目錄名稱。不過,Branch,Tag及Release已經是SVN上面約定成俗的名稱。是以,除非您知道自己為何這樣做,否則,最好還是follow這個命名原則,以免後面新加入的人看不懂。

NOTE:同樣的道理Trunk也隻是一個約定成俗的名稱。不一定要叫Trunk。隻是大家看到Trunk目錄就會知道這裡面放的是主要的開發主幹。

快速參考

前面寫了不少廢話,主要是給完全沒有版本控制觀念的人看的。如果你想直接知道某個功能如何使用,請看下面的章節。

在後面的說明,皆以d:\working當作工作目錄。您可以将他換成其它任何您想要的目錄。

取得(Checkout)Repository

開啟檔案管理者,進入d:

在檔案管理者空白處按下滑鼠右鍵,選擇SVN Checkout

在Checkout對話框中,

URL of repository:repository的位置。

Checkout directory:要存放working copy的地方。

若d:\working目錄不存在,SVN會問您要不要建立這個目錄,請選擇Yes。

接着按下OK,即可checkout該目錄。

更新(Update)檔案或目錄

在您要由repository更新至working copy的檔案或是目錄的icon上面按下滑鼠右鍵。選擇SVN Update即可。

如果是要更新至特定的版本,則選擇TortoiseSVN->Update to revision。并且在Update對話框中的Revision字段輸入您要的版本。也可以透過Show Log按鈕來檢視版本的資訊。

新增(Add)檔案或目錄

在尚不屬于repository的檔案或目錄的icon上按下滑鼠右鍵。選擇TortoiseSVN->Add。

選取要新增的檔案。

按下OK。

NOTE:新增的檔案要經過送出(Commit)的動作才回真正的放入Repository中。

送出(Commit)修改過的檔案或目錄

在修改過的檔案,或是在整個目錄的空白處按下滑鼠右鍵。

勾選真正要送出至Repository的檔案或目錄。

輸入本次送出的紀錄訊息(Message)。這個訊息應該要清楚明了,但不應過份簡單。以利日後版本追蹤。

按下OK。

Copy/Tag/Branch/Release檔案或目錄

确認您要處理的檔案或是目錄已經是Repository中最新的版本。

在要處理的目錄或是檔案上面按下滑鼠右鍵,選擇TortoiseSVN->Branch/Tag。

在To URL處輸入您要的目的地。

branch:要産生一個分支。以差別與trunk不同的開發。

tag:要形成一個标記,表示重要的milestone。

release:表示一個已經正式的release的紀錄。

其它:進行一個複制(copy)。

本文來自聯城技術網(http://tech.16c.cn/)

繼續閱讀