svn服务器搭建:快速部署与高效配置
深夜趕工時盯著螢幕上混亂的程式碼版本,突然懷念起那個被戲稱「上古神器」的SVN。前陣子幫客戶遷移老舊金融系統,硬是得在CentOS上重現一套SVN環境,折騰完才驚覺:這玩意兒在特定場景下仍是剛需。今天就手把手拆解實戰流程,避開我踩過的坑。
裝環境別糾結,直接上svnserve最輕快。用yum install subversion裝好核心,關鍵在倉庫初始化:svnadmin create /opt/svn/project_repo這行指令下去,記得立刻衝進conf目錄改三份檔案。svnserve.conf裡把anon-access = none和auth-access = write的註解拿掉,密碼檔passwd格式是username = password,別手滑多打空格。
權限控管才是精髓。在authz檔案裡玩分組管理,例如[groups] dev_team = alice,bob,底下用[/trunk] @dev_team = rw賦權。曾遇過外包團隊誤刪生產線代碼,就是靠這層權限牆擋災。啟動服務用svnserve -d -r /opt/svn,-r參數指定根路徑才不會暴露全盤路徑。
高效配置藏在鉤子脚本裡。在repo的hooks目錄放pre-commit腳本,用Shell寫個基礎代碼規範檢查:禁止提交大於10MB二進位檔、強制填寫超過15字的log。進階點還能整合靜態掃描工具,我習慣在post-commit觸發自動同步到備援伺服器,具體指令像是svnsync init file:///backup_repo file:///main_repo。
防火牆別漏了!CentOS 7以上用firewall-cmd --permanent --add-port=3690/tcp開通端口,老系統檢查iptables。曾幫遊戲公司排查三天連線失敗,結果是雲主機安全組沒放行,血淚教訓。
客戶端連上來用svn://your_ip/project_repo,輸入剛設定的帳密就能拉代碼。推薦用TortoiseSVN管理,它的圖形化diff工具比指令直觀十倍。若要走HTTPS加密,就得嫁接Apache,要動mod_dav_svn模組,那又是另一場戰役了。
最後嘮叨兩句:定期svnadmin dump冷備份,硬碟暴斃時你會謝天謝地。開發新專案當然首推Git,但維護遺留系統時,SVN的集中式管理反而省心——至少不用跟新人解釋什麼是rebase。
評論: