2009-11-04

【系統】SVN 筆記 - 進階指令

之前寫了一篇 : 【系統】SVN 筆記 - 基本指令

現在要再說明的是怎麼從 Trunk 建一個 Branch,

然後開發完後,再從 Branch Merge 回 Trunk。

所以其實也不算是進階,只是之前都說基本了~所以第二篇只好叫進階。

 


首先從 Trunk 上把目前的 Project 複制一份到 Branches ( ex: 091023-login )

svn cp svn+ssh://chingwei@trac.net/home/svn/trunk/project svn+ssh://chingwei@trac.net/home/svn/branches/091023-login -m '新版登入功能'

這樣子就建好 Branch 了。然後就 check out 出來開始撰寫新的功能。

svn co svn+ssh://chingwei@trac.net/home/svn/branches/091023-login

以上,從 Trunk 複制一份到 Branch 就完成了。

 


接著就是當程式開發完,要 Merge 回原來的 Trunk 時,要執行的步驟了。

首先看一下建 Branch 時的版本是多少。

svn log --stop-on-copy svn+ssh://chingwei@trac.net/home/svn/branches/091023-login

------------------------------------------------------------------------
r6953 | chingwei | 2009-10-21 14:40:12 +0800 (Wed, 21 Oct 2009) | 1 line
------------------------------------------------------------------------
r6951 | chingwei | 2009-10-21 14:39:19 +0800 (Wed, 21 Oct 2009) | 1 line
------------------------------------------------------------------------
r6950 | chingwei | 2009-10-21 14:38:49 +0800 (Wed, 21 Oct 2009) | 1 line
------------------------------------------------------------------------

結果看到最開始的是 r6950

 

接著將目前的工作目錄切換成 Trunk :

svn switch svn+ssh://chingwei@trac.net/home/svn/trunk/project

 

然後將 Branch 的起始版本號開始,將程式 Merge 到目前的工作目錄 ( Trunk )。

svn merge --dry-run -r 6950:HEAD svn+ssh://chingwei@trac.net/home/svn/branches/091023-login

--dry-run 表示乾跑,就是假的,他會顯示有那些檔將被 update 或是有 conflict 之類的。

 

當確定這些都沒問題,就正式 Merge 把 --dry-run 拿掉:

svn merge -r 6950:HEAD svn+ssh://chingwei@trac.net/home/svn/branches/091023-login


Merge 完後,就可以把現在的程式,再 ci 上去 SVN。

svn ci

 

以上。

0 comments:

張貼留言