SVN 創建發行版/分支版的步驟


最近看了很多 Git 與 SVN 的比較,很多都說 SVN 做分支很慢,不知道是從何說起。有可能大家都不清楚,SVN 做分支的正確步驟,特此介紹一下。

SVN 服務器后台使用 Berkeley DB 數據庫進行數據保存。當前版本、發行版本、分支版本,在 SVN 客戶端處中一般只是當成普通目錄。SVN 客戶端有很多種,客戶端處數據如何保存,沒有明確的說法。

 

比如,SVN 版本庫從客戶端上看其根目錄為:

http://zhegui-svn/svn

 

幾個主要子目錄為:

 

1) 當前開發主線目錄 http://zhegui-svn/svn/trunk/
2) 之前正式發行版目錄 http://zhegui-svn/svn/releases/
3) 之前或現在各分支版目錄 http://zhegui-svn/svn/branches/
4) 每日構建目錄 http://zhegui-svn/svn/builds/

 

創建分支,或創建發行版,只是一個目錄復制操作。由於SVN服務器端的數據是保存在 Berkeley DB 數據庫里,因此,目錄復制,在數據庫層面,只是保存一條在某個目錄下創建一個子目錄,新的子目錄的內容,等同於另一個目錄的那個版本信息。

那些認為 SVN 復制分支,需要復制整個目錄里所有文件的人,或者說出“拉分支的時間較慢,因為拉分支相當於copy”之類話的,都可以從頭學習數據庫了。反正稍微熟悉一點數據庫的一些基本概念的技術人員,都不會設計出“分支要在服務器上復制整個目錄里所有文件”這么個邏輯來。

 

以下是操作步驟舉例(使用的 SVN 客戶端工具軟件是 TortoiseSVN ):

之后選擇目錄復制的源頭、源頭目錄版本(可以不用最新版,最新版可能有人新加了一個功能,還沒做完)、目的地目錄:

上述截圖中,將項目的主開發目錄 http://zhegui-svn/svn/trunk/zhegui_print_upload 對應版本 29423 ,復制到 http://zhegui-svn/svn/releases/zhegui_print_upload-v3.0,即完成了發行版本的服務器上復制功能。一般再大的項目,都是秒級完成。



實際的軟件項目開發中,只有以下目錄用得比較多: 

1) 當前開發主線目錄 http://zhegui-svn/svn/trunk/

以下目錄用得比較少: 

2) 之前正式發行版目錄 http://zhegui-svn/svn/releases/
3) 之前或現在各分支版目錄 http://zhegui-svn/svn/branches/
4) 每日構建目錄 http://zhegui-svn/svn/builds/

 

 

這是因為,創建新發行版本,只是在 SVN 服務器上進行目錄復制,相當於只是在Berkeley DB 數據庫保存一條在某個目錄下創建一個子目錄,新的子目錄的內容,等同於另一個目錄的那個版本信息。

那把這句話保存在一個文本文件中,也不費什么事。

同理,每日構建目錄的存在意義,也不大。

 

另一方面,如果是軟件產品類開發,有多個不同客戶,可能分別進行 bug 修復,則仍有必要使用發行目錄: 

2) 之前正式發行版目錄 http://zhegui-svn/svn/releases/

希望以上介紹,能幫助到大家。

 

---------------------------------

本文歡迎轉載,轉載請注明來源:https://www.cnblogs.com/jacklondon/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM