Subversion (SVN) 淺談
SVN簡介
SVN = 版本控制 + 備份伺服器
簡單的說,您可以把SVN當成您的備份伺服器,更好的是,他可以幫您記住每次上傳到這個伺服器的檔案內容。並且自動的賦予每次的變更一個版本。---
基本功能操作
Checkout - 把主機上的檔案或是程式碼取出存到用戶端的電腦裡,建立連動
Update - 更新,下載最新的版本到用戶電腦裡,若資料跟主機一樣新,就不會異動
Commit - 將用戶端的變更上傳至主機
Branch/tag - 用於平行開發分支版本或是將版本定版
Switch - 切換版本
Subversion(SVN)概念與工具介紹
SVN中檢出(check out)、匯出(export)、匯入(import)、add(新增)、update(更新)的區別
---
SVN應用
SVN Repository 基本結構
- trunk - 主開發目錄 (僅合併不開發)
- branches - 分支開發目錄
- tags - 可用穩定版本 (唯讀)
SVN 初始化流程
- 創建 repository
- 加入成員、設定權限
- 建立基本結構目錄 trunk, branches, tags
- 設定 properties
SVN 開發流程
- 在開發分支(branch)上持續開發
- 階段開發結束將branch進度合併至trunk
- 將trunk發布為穩定版本(tag)
- 建立新的開發分支或原開發分支繼續開發
- 持續1~4階段循環至專案結束
SVN 使用案例 - 團隊工具庫 (以UE4為例)
TeamTools
- trunk
- branches
- 4.25-dev
- 4.26-dev
- tags
- 4.25-release-1.0.20
- 4.25-release-1.1.35
- 4.26-release-2.0.52
// 避免專案開發中需要隨著工具版本更新而重設工具版控路徑的麻煩,dev版本合併trunk後不刪除,唯有公開發布團隊外使用時才需建立tag穩定版本
SVN 使用案例 - 專案開發 (以UE4為例)
MyProject
- trunk
- branches
- dev-featureA
- dev-featureB
- dev-featureC
- tags
- 4.25-release-1.0.834
- 4.26-release-2.0.1024
// 各開發分支可同時進行開發並共享資源與進度,分支階段性開發結束後將版本marge至trunk,各開發分支再從trunk將最新功能marge回開發分支以維持最新進度,欲發布穩定版本時再從trunk建立tag
// branch, marge, tag功能需由高階人員操作