SVN branch分支管理

SVN branch分支管理

開發過程中修改bug或者添加新功能避免影響trunk,通常需要建立一個branch,在branch上進行修改,這樣 trunk 和 branch 就可以並行開發互不干擾了。

當branch修改結束測試通過後,先將 trunk 合併到 branch,確定沒問題後,再將 branch 合併回 trunk。切記 trunk 任何時候都要保證穩定,不能直接將 branch 修改的代碼合併到 trunk, 否則如果有衝突甚至錯誤修改導致 trunk 發生錯誤,無法正常使用,可能會影響其他同事正常開發。影響開發進度。

下面來通過實際操作來展示如何使用 branch

1、首先打開 SVN 服務器,下面使用的是 VisualSVN Server,創建一個 Repositories 命名爲 BranchTest
這裏寫圖片描述

2、選擇 創建 trunk、branches、tags 方式
這裏寫圖片描述

3、然後 SVN CheckOut
這裏寫圖片描述

4、在 trunk 下創建 Demo 測試工程,在 Demo 中添加 1.txt 並將 Demo 執行 add、commit
這裏寫圖片描述

5、創建 Branch
選擇 Demo 右鍵 TortoiseSVN -> Branch/tag
路徑是從 trunk/Demo
To path : 爲創建分支路徑
選擇 HEAD revision in the repository
這裏寫圖片描述

6、執行 SVN Update
打開路徑 branches 可以看到 項目已經被更新下來
這裏寫圖片描述

7、在 分支中修改 1.txt、添加 2.txt, Commit
這裏寫圖片描述

8、在 Demo 中 SVN Update,Branch 中執行的修改、添加,並沒有影響到 trunk
這裏寫圖片描述

9、Demo 中添加 3.txt 並 Commit, Branch 執行 SVN Update,3.txt 也沒有出現在 Branch 中,說明Bransh 和 trunk 是相互並行互不干擾的。
這裏寫圖片描述

10、將 trunk 合併(Merge)到 bransh,選擇 branch/BranchDemo1 右鍵 -> TortoiseSVN -> Merge
選擇 Merge a range of revisions 下一步
這裏寫圖片描述

因爲從 trunk 合併到 bransh
URL to merge from 要選擇 trunk 下 Demo 的路徑
這裏寫圖片描述

specific range (指定需要從trunk 合併過來的trunk 的變更集範圍)
all revisions 所有 trunk 中的修改都合併到 branch
選擇 specific range 在右邊 show log 中可以查看 trunk 的變更集
這裏寫圖片描述
下一步
這裏寫圖片描述

執行下一步前可以試下 右下角 Test merge,測試下是否有衝突,看 log 沒有衝突異常,點擊 Merge
這裏寫圖片描述

執行結束打開 branch, trunk/Demo 添加的 3.txt 已經更新到 branch 中了,並且沒有衝突產生
這裏寫圖片描述

11、對 branch 執行 Commit,然後對 trunk 和branch 都執行下 SVN Update,避免出現 out of day
12、確保 Branch 的修改並沒有和trunk 產生衝突,然後從 branch 合併到 trunk/Demo,選擇 trunk/Demo 右鍵 -> TortoiseSVN -> Merge ,路徑選擇 從 branch/BranchDemo1 到 trunk/Demo
這裏寫圖片描述

打開 trunk/Demo 目錄發現 BranchDemo1 中添加的 2.txt 和 BranchDemo1 中在 1.txt 中添加的 內容都已經更新到了 trunk/Demo
這裏寫圖片描述

13、對 trunk/Demo 執行 SVN Commit 將 從 branch 中合併過來的修改提交到 Repository

到此 SVN branch 分支的使用已經結束,上面只是演示操作過程,實際開發中由於多人同時協作開發,不可避免會出現不同人員 刪除、修改等造成衝突,然後手動解決衝突