1.安裝
# sudo apt-get install subversion subversion-tools
# sudo apt-get install apache2 libapache2-svn
2.增加svn用戶組,用於管理svn,並加入到www-data的apache組:
# sudo addgroup subversion
# sudo usermod -G subversion -a www-data
3.然後可以創建svn項目倉庫了:
# 一般可以將項目倉庫建立到/home/svn目錄 # 假設項目名爲myproject,先建立空目錄 $ sudo mkdir /home/svn $ cd /home/svn $ sudo mkdir myproject $ sudo chown -R root:subversion myproject #創建爲svn項目,使用以下命令 $ sudo svnadmin create /home/svn/myproject # 然後才賦予組成員對所有新加入文件倉庫的文件擁有相應的權限: # 如果命令順序搞錯,可能會報錯,請參照官方wiki $ sudo chmod -R g+rws myproject
4.最後是配置apache2,用http協議訪問svn服務:
# 在安裝了libapache2-svn時會自動生成該文件
$ sudo vi /etc/apache2/mods-available/dav_svn.conf
# 編輯dav_svn.conf配置文件,內有註釋,可以去掉前面的#使語句生效,最後內容大概如下即可:
<Location /svn> #/svn表示http://hostname/svn/myproject
DAV svn
SVNParentPath /home/svn #配置倉庫父目錄
AuthType Basic
AuthName "welcome to subversion repository"
AuthUserFile /etc/subversion/dav_svn.passwd #svn用戶文件
AuthzSVNAccessFile /etc/subversion/dav_svn.authz #授權訪問文件
Require valid-user
</Location>
5.創建svn用戶文件/etc/subversion/passwd 和 授權訪問文件/etc/subversion/authz:
創建svn用戶文件:
#首次創建需要加-c選項,同時可以增加一個svn用戶
#執行該命令會提示爲新用戶user_name設置密碼
sudo htpasswd -c /etc/subversion/passwd user_name
#以後添加新用戶,需要去掉-c選項,否則以前的用戶就被覆滅了
sudo htpasswd /etc/subversion/passwd new_name
創建svn授權訪問文件(用於多個svn項目,劃分不同的用戶組):
#用戶組指令
[groups]
#格式爲 組名 = 用戶名1,用戶名2
group1 = user1, user2
group2 = user1, user3
#other groups...
#格式爲 svn項目的倉庫名:對應目錄
[svn_repository_name:/]
#設置組的權限,r=read, w=write
@group1 = rw
[svn_repository_name2:/web/css]
@group2 = rw
6.改完最後重啓apache:#sudo /etc/init.d/apache2 restart。這樣工作就全部完成了。
參考http://cssor.com/ubuntu-server-svn.html
創建佈局
可以在客戶端使用svn mkdir在版本庫中逐個創建訴需要的目錄,更快的方式是使用svn import命令:首先在本地創建一個臨時目錄,並按照設計好的佈局在其下面創建子目錄,然後通過svn import一次性提交整個佈局到版本庫中, 然後刪除這個臨時目錄:
$ mkdir tmp
$ mkdir tmp/project_A/trunk
$ mkdir tmp/project_A/branches
$ mkdir tmp/project_A/tags
$ cd tmp
$ svn import . file:///home/svn/project_A -m "Initial repositorylayout" (必須標註修改信息)
$ cd ..
$ rm -fr tmp
然後可以用svn list確認導入的結果是否正確:
$ svn list --verbose file:///home/svn/project_A