剛接觸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
如果安裝的是rpm包,會自動安裝svn服務,只需配置/etc/sysconfig/svnserve檔案:
#vim /etc/sysconfig/svnserve
options="-r /data/svn --config-file /data/svn/svnserve.conf"
windows下使用的是collabnet的subversion server,它安裝的服務,指定的imagepath形式為:"\svnserve.exe" --service -r "e:\svn_repository" --listen-port 3690 ,是沒有指定--config-file引數的,因此導致我等剛接觸svn的新手會被多版本庫的配置問題糾結,現在只要到登錄檔更改一下svn所在服務的imagepath引數,追加上--config-file引數:
"\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 ...