首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

手把手教你搭建最簡單的 SVN 服務器(Windows 環境)

     編輯:Java 相關知識

前言

Subversion (SVN) 作為經典的集中式版本控制系統,至今仍在許多企業專案中發揮作用。本文記錄在 Windows 環境下,以最少步驟快速建立一個可用的 SVN 服務器,適合中小團隊或個人專案快速上手。

一、 安裝 SVN 服務端程式

  1. 下載 Apache Subversion Windows 安裝包(建議選擇 Setup-Subversion-1.14.x.msi)
  2. 執行安裝,預設安裝路徑如 C:\Program Files\Subversion\
  3. 將 bin 目錄加入系統環境變數 Path,以便命令列直接呼叫 svnadmin、svnserve

二、 建立版本庫目錄結構

mkdir D:\svndata
mkdir D:\svndata\myproject

建議每個專案獨立一個版本庫目錄,便於權限隔離與備份。

三、 初始化版本庫

svnadmin create D:\svndata\myproject

執行成功後,目錄下會生成 conf、db、hooks、locks、format、README.txt 等檔案與資料夾。

四、 核心配置:conf/svnserve.conf

編輯 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:允許匿名讀取,生產環境建議改為 none
  • auth-access = write:認證用戶可讀寫

五、 配置用戶帳號:conf/passwd

編輯 D:\svndata\myproject\conf\passwd,在 [users] 區塊新增用戶(格式:用戶名 = 密碼):

[users]
harry = harryssecret
sally = sallyssecret
dev01 = dev01pass
# 密碼明文存儲,僅適合內網測試;生產環境請使用 SASL 或 LDAP 整合

六、 啟動服務與驗證

1. 前台啟動(測試用)

svnserve -d -r D:\svndata
  • -d:守護進程模式
  • -r:指定版本庫根目錄,客戶端 URL 只需專案名
  • 預設端口 3690,若衝突可用 --listen-port=xxxx 指定

2. 驗證連線

svn info svn://localhost/myproject

輸出版本庫 UUID、根路徑等資訊即表示服務正常。

七、 生產環境部署:註冊為 Windows 服務

避免關閉命令視窗導致服務中斷,建議註冊為系統服務:

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 SVNService
  • 停止:net stop SVNService
  • 刪除:sc delete SVNService

八、 防火牆與網路注意事項

  • Windows 防火牆需放行 TCP 3690 端口(或自訂端口)
  • 跨網段訪問時,確保路由器/雲廠商安全組開放對應端口
  • 建議配合 VPN 或 SSH 隧道加密傳輸,避免明文密碼洩露

結語

以上步驟完成一個基礎可用的 SVN 服務器。後續可根據需求擴展:
• 使用 authz 實現路徑級權限控制
• 整合 Apache httpd + mod_dav_svn 提供 HTTP/HTTPS 存取
• 部署 Hook 腳本實現提交郵件通知、自動部署等 CI/CD 流程
版本控制是團隊協作基石,建議盡早建立規範的提交訊息規範與分支策略。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved