SVN多版本庫配置問題

來源:互聯網
上載者:User

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

Linux和Windows下處理基本上一樣的,先來看Linux下的svnserve的協助資訊:

[root@localhost ~]# svnserve --helpusage: 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/svnsvnadmin create repos1svnadmin 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/svnserveOPTIONS="-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"

以上中使用的路徑等,請自行轉換成各自對應的路徑。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.