SVN多版本庫配置問題

2021-08-27 04:26:59 字數 2713 閱讀 4526

剛接觸svn的時候,因為對它不了解,又在windows下面,被它的多版本庫配置問題困擾很久,一直找不到完美解決方案,今天無意中在linux下配置svn時,發現它本身是支援的,通過配置--config-file引數指定全域性的配置檔案實現。寫下此文來糾正以前錯誤的配置方式(主要是windows系統下),分享給大家。

[root@localhost ~]# svnserve --help

usage: svnserve [-d | -i | -t | -x] [options]

valid options:

-d [--daemon] : daemon mode

-i [--inetd] : inetd mode

-t [--tunnel] : tunnel mode

-x [--listen-once] : listen-once mode (useful for debugging)

-r [--root] arg : root of directory to serve

-r [--read-only] : force read only, overriding repository config file

--config-file arg : read configuration from file arg

--listen-port arg : listen port

[mode: daemon, listen-once]

--listen-host arg : listen hostname or ip address

[mode: daemon, listen-once]

-t [--threads] : use threads instead of fork [mode: daemon]

--foreground : run in foreground (useful for debugging)

[mode: daemon]

--log-file arg : svnserve log file

--pid-file arg : write server process id to file arg

[mode: daemon, listen-once]

--tunnel-user arg : tunnel username (default is current uid's name)

[mode: tunnel]

-h [--help] : display this help

--version : show program version information

通常啟動svn服務,僅指定svn版本庫的根目錄,如下:

svnserve -d -r /data/svn
然後在/data/svn下建立多個版本庫:

cd /data/svn

svnadmin create repos1

svnadmin create repos2

再依次配置repos1和repos2等版本庫下的conf/svnserve.conf、conf/passwd、conf/authz檔案。

問題便來了,因為大多數的時候,同乙個使用者需要用相同的帳號和密碼去訪問不同的版本庫,這時的許可權配置就不好處理了,以前看其他人的解決方法是在svnserve.conf中指定passwd和authz的路徑時用相對路徑指到同乙個檔案。這是乙個可行的方法,但新增版本庫的時候,就得更改svnserve.conf檔案,不方便。

仔細看svnserve的幫助資訊,大家都會發現有乙個--config-file引數,這個引數就是用來指定svnserve.conf路徑的,說到這,問題已經明了,只要在啟動svn服務的時候,指定--config-file引數,只要指定了此引數,所有的許可權都由引數指定的svnserve.conf控制,而每個版本庫conf目錄下的svnserve.conf的配置都會忽略掉。

svnserve -d -r /data/svn --config-file /data/svn/svnserve.conf

windows下使用的是collabnet的subversion server,它安裝的服務,指定的imagepath形式為:"d:\program files (x86)\collabnet\subversion server\svnserve.exe" --service -r "e:\svn_repository" --listen-port "3690" ,是沒有指定--config-file引數的,因此導致我等剛接觸svn的新手會被多版本庫的配置問題糾結,現在只要到登錄檔更改一下svn所在服務的imagepath引數,追加上--config-file引數:

"d:\program files (x86)\collabnet\subversion server\svnserve.exe" --service -r "e:\svn_repository" --listen-port "3690" --config-file "e:\svn_repository\conf\svnserve.conf"
以上中使用的路徑等,請自行轉換成各自對應的路徑。

SVN多版本庫配置問題

剛接觸svn的時候,因為對它不了解,又在windows下面,被它的多版本庫配置問題困擾很久,一直找不到完美解決方案,今天無意中在linux下配置svn時,發現它本身是支援的,通過配置 config file引數指定全域性的配置檔案實現。寫下此文來糾正以前錯誤的配置方式 主要是windows系統下 分...

SVN 建立版本庫配置方法

進入 opt svn runoob01 conf目錄 修改預設配置檔案配置,包括svnserve.conf passwd authz 配置相關使用者和許可權。1 svn服務配置檔案svnserve.conf svn服務配置檔案為版本庫目錄中的檔案conf svnserve.conf。該檔案僅由乙個 ...

在ubuntu上建立多svn版本庫

mkdir dev repository svnadmin create dev repository a svnadmin create dev repository b svnserve d r dev repository 這樣就可以通過 svn server ip a svn server ...