Centos7配置SVN服務端


環境

Centos 7

SVN 1.7

安裝SVN

Shell> yum install svn -y

准備配置和倉庫

Shell> mkdir -p /mydata/repo
Shell> cd /mydata/repo/
Shell> svnadmin create erp  #創建一個代碼庫,這里以erp為例

代碼庫的配置文件位於/mydata/repo/erp/conf/,共三個,下面依次進行修改。

修改總配置文件 svnserve.conf

[general]
anon-access = none      #禁止匿名訪問
auth-access = write      #登錄用戶可以有寫權限
password-db = passwd     #用戶名密碼的配置文件
authz-db = authz       #用戶權限的配置文件
realm = My SVN Repository  #倉庫的說明文本

修改用戶及其密碼的配置文件 passwd

[users]
user1 = 111
user2 = 222
user3 = 333

修改權限的配置文件 authz

[groups]  #用戶組,建議所有用戶都配置到組以方便權限管理,單個用戶是可以存在於多個組的
admin = user1     #管理員
common = user2,user3 #普通用戶
[
/]    #根目錄,此處的配置也是該庫的默認權限 @admin = rw  #管理員默認有全部的讀寫權限
* =       #其他默認沒有任何權限 [/trunk]  #主干,此處未指定的管理員則會繼承根目錄的讀寫權限,下同
@common = rw  #普通用戶有讀寫權限

[/branches]  #分支
@common = rw  #普通用戶有讀寫權限

[/tags]  #標記 @common = r  #普通用戶只有讀權限

注:這三個配置文件修改后不需要重啟即可生效。

配置svnserve服務

修改配置文件 /etc/sysconfig/svnserve,通過 -r 指定根目錄

OPTIONS="-r /mydata/repo/erp"

默認端口是3690,若需要修改可以在OPTIONS中加上 --listen-port [port]

默認不打印日志,所需要在在OPTIONS中加上 --log-file [file]

啟動並配置開機自啟

Shell> systemctl start svnserve
Shell> systemctl enable svnserve

測試使用

第一次輸入用戶名密碼后會提示保存,以后就不需要再輸入了

若不想保存更不想總提示保存,那就每個svn命令都加上這三個參數:--username user1 --password 111 --no-auth-cache

Shell> svn mkdir svn://localhost/{trunk,branches,tags} -m '創建基本目錄'
Shell> svn co svn://
localhost/trunk
Shell> cd trunk/
Shell> touch 1.txt
Shell> svn add *
Shell> svn ci -m '添加文件1.txt'
Shell> svn up

Shell> svn log
------------------------------------------------------------------------
r2 | user1 | 2020-01-10 12:14:32 +0800 (五, 2020-01-10) | 1 行

添加文件1.txt
------------------------------------------------------------------------
r1 | user1 | 2020-01-10 12:10:23 +0800 (五, 2020-01-10) | 1 行

創建基本目錄
------------------------------------------------------------------------

多庫模式

上文中,庫的根目錄直接指向了erp,表示這是單庫模式,該svn服務只有一個項目庫,若在/mydata/repo下還有其他項目,比如oa、crm等

那么需要將根目錄指向上級目錄,修改 /etc/sysconfig/svnserve

OPTIONS="-r /mydata/repo"

那么在訪問時需要加上項目名,比如:

Shell> svn ls svn://localhost/erp

另外,要注意每個項目使用的是它目錄下conf中的配置文件,需要分開單獨維護。

不過,可以通過參數--config-file指定共用的配置,比如將erp的配置復制到/etc/svnserve/conf作為共用,需要修改 /etc/sysconfig/svnserve

OPTIONS="-r /mydata/repo --config-file /etc/svnserve/conf/svnserve.conf"

然后,需要修改 /etc/svnserve/conf/authz 增加項目名:

[erp:/]
@admin = rw
* =

[ao:/] @admin = rw * =
[erp:
/trunk] @common = rw

...略...

注:使用了--config-file參數,在修改了配置文件后,必須重啟svnserve服務才能生效;而且,通常多項目時權限情況較復雜,還是建議每個項目用自己單獨的配置比較合適。

單庫多項

規模不大且權限分配不復雜的情況當然也是存在的,這種可以考慮用單庫模式(庫名可以用公司名),然后庫內通過文件夾區分項目即可:

repo/
└── mycompany
    ├── crm
    │   ├── branches
    │   ├── tags
    │   └── trunk
    ├── erp
    │   ├── branches
    │   ├── tags
    │   └── trunk
    └── oa
        ├── branches
        ├── tags
        └── trunk

 

over


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM