2011/08/05

svn tag/branch

剛剛寫了一篇 svn on ubuntu,現在來談談對 release 的版本控制要怎麼進行。

版本控制有很多事要做,release 算是重要的一環。最簡單的就是自己在 commit 時加到註解中,然後日後自行讀 log 來判斷 release version

上面這種做法好處就是簡單,但是真正要做版本控制就有點複雜,因為必須從一堆 log 去找出來,當時間過去很久之後,這並不是一件簡單的事。因此比較正規的作法是用 svn copy 來完成。不過為了這個功能,一般書上會講一件事,就是目錄的擺放。我舉前面提到的 /home/svn/wade 來說....

首先,假如是用 log 來決定 release version 的話,大可以把所有 source code 都直接擺放 /home/svn/wade 下即可。但是若要用 svn copy 來做版本控制的話,依建議是.....
假設已經 checkout wade project 了,那麼在該工作目錄下執行底下兩個命令:
svn mkdir trunk
svn mkdir tags

然後,把所有 source code 都擺放在 trunk 目錄下,也就是真正的工作目錄是 /home/svn/wade/trunk
當你要 release source code 時,再用下面的命令:
svn copy http://localhost/svn/wade/trunk http://localhost/svn/wade/tags/release-1.0 -m "first release"

簡單講,svn 的 tag/branch 就是用 copy 來實現,而且是把工作目錄複製一份新的......當做了上面的命令之後,可以再接著用下面的命令來 release source code

svn export http://localhost/svn/wade/tags/release-1.0

0 意見: