SVN服務器部署(http方式)

Svn服務器部署

svn簡介

Subversion是一個免費/開源的版本控制系統, Subversion 可以跨越時間地對文件和目錄, 以及它們的修改進行管理. 這就允許你恢復 數據的舊版本, 或檢查數據的修改歷史. 由於這個特點, 很多人把版本控制系統 看成是一種 “時間機器”.

Svn的組件

  1. svn 客戶端命令行工具
  2. svnversion 用於報告工作副本狀態 (就項目的版本號而言) 的工具
  3. svnlook可以直接檢查倉庫的工具
  4. svnadmin 用於創建, 調整或修復 Subversion 倉庫的工具
  5. mod_dav_svn Apache HTTP 服務器插件, 該插件允許用戶通過網絡訪問倉庫
  6. svnserve 一個定製的, 可獨立運行的服務器程序, 可以以守護進程方式運行, 也可以被 SSH 調用, 這是另一種允許用戶通過網絡訪問倉庫的方法
  7. svndumpfilter 過濾 Subversion 倉庫轉儲數據流的程序
  8. svnsync 可以跨越網絡對倉庫進行增量鏡像備份的程序
  9. svnrdump 可以跨越網絡對倉庫歷史進行轉儲和加載的程序
  10. svnmucc 該工具支持在沒有工作副本的情況下, 在一個單獨的提交中對多個 倉庫執行基於 URL 的操作

    Svn 服務端運行方式

    • 獨立服務器訪問s svn://svn.server.net/svn_test
    • 藉助apache等http服務 http://svn.server.net/svn_test
    • 本地文件 file:///svn_test

      常用Svn軟件工具

      windows

  11. server端VisualSVN
  12. client端TrotoiseSVN

    linux

  13. subversion

基礎環境

  • Centos7.4 x86_64

subversion軟件安裝

yum install subversion mod\_svn_dav httpd

Svn服務器部署

  • 庫目錄/home/SVN_REPO
  • 帳號驗證文件目錄/etc/subversion
  • 訪問路徑http://ip_address/svn/

    創建密碼驗證文件

    示例創建user01的svn用戶

    cd /etc/subversion
    htpasswd -c svnuser user01

    htpasswd命令用法

  • -c:創建一個加密文件;
  • -n:不更新加密文件,只將加密後的用戶名密碼顯示在屏幕上;
  • -m:默認採用MD5算法對密碼進行加密;
  • -d:採用CRYPT算法對密碼進行加密;
  • -p:不對密碼進行進行加密,即明文密碼;
  • -s:採用SHA算法對密碼進行加密;
  • -b:在命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼;
  • -D:刪除指定的用戶。
    示例
    利用htpasswd命令添加用戶 (用戶user01,密碼123456)

    htpasswd -bc svnuser user01 123456

    在原有密碼文件中增加下一個用戶(更新用戶密碼與之相同)

    htpasswd -b svnuser user02 123456

    刪除一個用戶

    htpasswd -D svnuser user02

修改httpd配置

不同的系統路徑略有不同

vi /etc/httpd/conf.modules.d/10-subversion.conf

<location /svn>
  DAV svn
  SVNListParentPath On
  SVNParentPath /home/SVN_REPO/
  AuthType Basic
  AuthName "Authorization Realm"
  AuthUserFile /etc/subversion/svnuser
  Require valid-user
  <IfModule mod_authz_svn.c>
  #AuthzSVNAccessFile /etc/httpd/authz
  AuthzSVNReposRelativeAccessFile authz
  </IfModule>
</location>

創建svn庫

創建一個名爲svn_test庫
cd /home/SVN_REPO
svnadmin create svn_test

配置訪問權限

添加user01對svn_test根目錄讀寫權限
cd /home/SVN_REPO/svn_test/conf
vi authz
[svn_test:/]
user01 = rw

authz權限文件語法

[<倉庫名稱>:<倉庫路徑>] 
內容 ==書寫方式
用戶名 = 權限(r, rw) user01 = r
或者:
@組名 = 權限(r, rw) @group = r
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章