Subversion (SVN) 作為經典的集中式版本控制系統,至今仍在許多企業專案中發揮作用。本文記錄在 Windows 環境下,以最少步驟快速建立一個可用的 SVN 服務器,適合中小團隊或個人專案快速上手。
Setup-Subversion-1.14.x.msi)C:\Program Files\Subversion\bin 目錄加入系統環境變數 Path,以便命令列直接呼叫 svnadmin、svnservemkdir D:\svndata
mkdir D:\svndata\myproject
建議每個專案獨立一個版本庫目錄,便於權限隔離與備份。
svnadmin create D:\svndata\myproject
執行成功後,目錄下會生成 conf、db、hooks、locks、format、README.txt 等檔案與資料夾。
編輯 D:\svndata\myproject\conf\svnserve.conf,在 [general] 區塊取消註釋並修改以下三項:
[general]
# 匿名用戶權限:none/read/write
anon-access = read
# 認證用戶權限:none/read/write
auth-access = write
# 密碼檔案路徑(相對於 conf 目錄)
password-db = passwd
anon-access = read:允許匿名讀取,生產環境建議改為 noneauth-access = write:認證用戶可讀寫編輯 D:\svndata\myproject\conf\passwd,在 [users] 區塊新增用戶(格式:用戶名 = 密碼):
[users]
harry = harryssecret
sally = sallyssecret
dev01 = dev01pass
# 密碼明文存儲,僅適合內網測試;生產環境請使用 SASL 或 LDAP 整合
svnserve -d -r D:\svndata
-d:守護進程模式-r:指定版本庫根目錄,客戶端 URL 只需專案名3690,若衝突可用 --listen-port=xxxx 指定svn info svn://localhost/myproject
輸出版本庫 UUID、根路徑等資訊即表示服務正常。
避免關閉命令視窗導致服務中斷,建議註冊為系統服務:
sc create SVNService binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svndata" displayName= "Subversion Repository" depend= Tcpip start= auto
binPath= 等號後有空格,路徑含空格需雙引號包裹depend= Tcpip 確保網路就緒後再啟動start= auto 設為開機自啟管理命令:
net start SVNServicenet stop SVNServicesc delete SVNService以上步驟完成一個基礎可用的 SVN 服務器。後續可根據需求擴展:
• 使用 authz 實現路徑級權限控制
• 整合 Apache httpd + mod_dav_svn 提供 HTTP/HTTPS 存取
• 部署 Hook 腳本實現提交郵件通知、自動部署等 CI/CD 流程
版本控制是團隊協作基石,建議盡早建立規範的提交訊息規範與分支策略。