安裝
1 $ sudo apt-get install apache2 2 $ sudo apt-get install subversion 3 $ sudo apt-get install libapache2-svn
創建 SVN 倉庫
許多位置都可以放置 Subversion 文件倉庫,其中兩個最常用的是:/usr/local/svn 以及 /home/svn。為了在下面的描述中簡單明了,我們假設您的 Subversion 文件倉庫放在 /home/svn,並且你的項目名稱是簡單的“myproject”。
同樣的,也有許多常用的方式設置文件倉庫的訪問權限。然而,這也是安裝過程中最經常出現錯誤的地方,因此我們會對此進行一個詳細說明。通常的情況下,您應該創建一個名為“Subversion”的用戶組,該組是SVN倉庫所在的目錄的擁有者。下面是一個快速的操作說明,有關內容請參考相關文檔的詳細說明:
1 $ sudo addgroup subversion 2 $ sudo usermod -G subversion -a www-data
現在執行下面的命令
1 $ sudo mkdir /home/svn 2 $ cd /home/svn 3 $ sudo mkdir myproject 4 $ sudo chown -R root:subversion myproject
下面的命令用於創建 SVN 文件倉庫
1 $ sudo svnadmin create /home/svn/myproject
賦予組成員對所有新加入文件倉庫的文件擁有相應的權限
1 $ sudo chmod -R g+rws myproject
通過WebDAV協議訪問(http://)
要通過 WebDAV 協議訪問 SVN 文件倉庫,必須配置您的 Apache 2 Web 服務器。必須加入下面的代碼片段到 /etc/apache2/mods-available/dav_svn.conf中:
1 <Location /svn> 2 DAV svn 3 SVNParentPath /home/svn 4 AuthType Basic 5 AuthName "myproject subversion repository" 6 AuthUserFile /home/svn/conf/passwd 7 AuthzSVNAccessFile /home/svn/conf/authz 8 #<LimitExcept GET PROPFIND OPTIONS REPORT> 9 Require valid-user 10 #</LimitExcept> 11 </Location>
如果需要用戶每次登錄時都進行用戶密碼驗證,請將<LimitExcept GET PROPFIND OPTIONS REPORT>與</LimitExcept>兩行注釋掉。
當您添加了上面的內容,您必須重新起動 Apache 2 Web 服務器,請輸入下面的命令:
1 $ sudo /etc/init.d/apache2 restart
接下來,您需要創建 /etc/subversion/passwd 文件,該文件包含了用戶授權的詳細信息。要添加用戶,您可以執行下面的命令:
添加用戶
$ sudo htpasswd /home/svn/conf/passwd user_name
添加用戶並重新生成 passwd 文件,如果 passwd 文件存在將會刪除原文件
$ sudo htpasswd -c /home/svn/conf/passwd user_name
它會提示您輸入密碼,當您輸入了密碼,該用戶就建立了。“-c”選項表示創建新的/home/svn/conf/passwd文件,所以user_name所指的用戶將是文件中唯一的用戶。如果要添加其他用戶,則去掉“-c”選項即可
AUTHZ 權限管理
[groups] admin = user1, user2 [proj-0:/] @admin = r user3 = rw [proj-1:/] user1 = rw [proj-1:/path/] user3 = rw
補充:svnserve 服務的部署及使用
在創建完代碼倉庫后,需要修改其 conf/svnserve.conf 如下:
[general] anon-access = none # 不修改此選項會導致獲取不了 svn 日志 password-db = ../../conf/passwd authz-db = ../../conf/authz
passwd 文件格式
[users]
username = passwd
authz 文件格式同上
啟動 svnserve 服務
svnserve -d -r /home/svn # 可以把這行腳本添加至 /etc/rc.local 中,系統啟動后將自動啟動 svn 服務
配置完成后可通過 svn:/192.168.1.6/project 來訪問