所謂的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的項目:


圖像:Tsvn_36.png 圖像:Tsvn_37.png 圖像:Tsvn_38.png


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


圖像:Tsvn_39.png 圖像:Tsvn_40.png


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


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


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

狼翔月影 發表在 痞客邦 PIXNET 留言(0) 人氣()