用TortoiseSVN创建branch/tag/release

很多時候您會希望有另外一個複製的目錄來進行新的編修。等到確定這個分支的修改已經完畢了,再合併到原來的主要開發版本上。舉例來說,我們目前在working copy下面有如下的目錄及檔案:



現在,我們要為trunk這個目錄建立一個branch。假設我們希望這個目錄是在D:workingmy_prjbranch 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中。www.svn8.com

要merge回trunk目錄中,方法很簡單。以上面的例子來說,我們在D:workingmy_prjtrunk目錄空白處,按下滑鼠右鍵,選擇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 www.svn8.com

所謂的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這個命名原則,以免後面新加入的人看不懂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值