SVN 建立發行版 分支版的步驟

2022-01-11 21:35:23 字數 2064 閱讀 3848

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

svn 伺服器後台使用 berkeley db 資料庫進行資料儲存。當前版本、發行版本、分支版本,在 svn 客戶端處中一般只是當成普通目錄。svn 客戶端有很多種,客戶端處資料如何儲存,沒有明確的說法。

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

幾個主要子目錄為:

1)當前開發主線目錄

2)之前正式發行版目錄

3)之前或現在各分支版目錄

4)每日構建目錄

建立分支,或建立發行版,只是乙個目錄複製操作。由於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)當前開發主線目錄

以下目錄用得比較少: 

2)之前正式發行版目錄

3)之前或現在各分支版目錄

4)每日構建目錄

這是因為,建立新發行版本,只是在 svn 伺服器上進行目錄複製,相當於只是在berkeley db 資料庫儲存一條「在某個目錄下建立乙個子目錄,新的子目錄的內容,等同於另乙個目錄的那個版本」資訊。

那把這句話儲存在乙個文字檔案中,也不費什麼事。

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

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

2)之前正式發行版目錄

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

OpenWrt的發行版

說起openwrt的版本問題,真的讓人又愛又恨。之前,我一直使用正在開發版本,只是知道有white russian 和kamliza這兩個版本,並沒有嘗試或者想過要編譯他們,我一直認為,正在開發的才是最新的,而且囊括了所有的。這是乙個致命的誤區。今天在尋找ar9341的晶元的產品的過程中,編譯發現一...

Linux的發行版

談到linux的發行版本,太多了,可能誰也不能給出乙個準確的數字,但是有一點是可以肯定的,linux正在變得越來越流行。面對這麼多的linux發行版,打算從其他系統轉到linux系統來的初學者可能會感到困惑,即便是忠實的 linux 使用者也沒有時間和精力去挨個嘗試,因此初學者在學習linux之前,...

linux發行版選擇

應用的環境和背景第乙個特點決定了這個發行版本不能太複雜,複雜到日常的應用的維護都要花費大量的時間 也不能太簡單,簡單到丟了linux的特點,讓人得出 這跟 windows差不多嘛 學生的水平良莠不齊,大多數從是由於興趣從windows下冒冒失失的跑到linux陣營裡來,相當一部分的人不新鮮味嚐過之 ...