核心概念
- **Repository(倉庫)**:集中存儲所有版本數據的服務端。
- **Working Copy(工作副本)**:開發者本地棧出的副本。
- **Commit/Update**:提交變更到倉庫 / 從倉庫更新到本地。
服務端搭建(Linux 為例)
- 安裝:`yum install subversion` 或 `apt-get install subversion`。
- 創建倉庫:`svnadmin create /data/svn/repo`。
- 配置 `conf/svnserve.conf`:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
- 用戶密碼 `conf/passwd`:
[users]
zhangsan = 123456
lisi = abcdef
- 權限控制 `conf/authz`:
[groups]
admin = zhangsan
dev = lisi
[/]
@admin = rw
@dev = r
* =
- 啟動:`svnserve -d -r /data/svn`(守護進程,默認端口 3690)。
客戶端基本操作
# 棧出
svn checkout svn://192.168.1.100/repo myproject
# 添加文件
svn add newfile.cpp
# 提交
svn commit -m "添加新功能模塊"
# 更新
svn update
# 查看日誌
svn log
# 創建標籤(發布版本)
svn copy svn://ip/repo/trunk svn://ip/repo/tags/v1.0 -m "Release v1.0"
# 分支開發
svn copy svn://ip/repo/trunk svn://ip/repo/branches/feature-x -m "Feature branch"
發布新版本流程
- 開發在 `trunk` 或 `branches` 完成並測試通過。
- `svn copy` 到 `tags/vX.Y`(標籤不可修改,作為歷史快照)。
- 構建腳本從 `tags/vX.Y` 棧出代碼進行編譯、打包、部署。
- 回滾:直接從對應 tag 棧出重新部署。
圖形化客戶端推薦
- **TortoiseSVN**(Windows 資源管理器集成,最流行)。
- **Cornerstone / Versions**(macOS)。
- **RabbitVCS**(Linux GNOME 集成)。
學習資源
SVN 圖文教程(從安裝到分支標籤實戰)
掌握「倉庫→棧出→修改→提交→標籤發布」核心流程,即可勝任項目版本控制管理。