SVN服務器運行模式: 模式1:svn服務器單獨運行 監聽: 3690端口 訪問: svn://IP 模式2: svn 服務器+ apache : 80 端口 訪問: http://IP

1. #安裝svn服務器和 apache服務器, mod_dav_svn模塊
# yum install subversion httpd mod_dav_svn -y
mod_dav_svn模塊 : apache http 服務器的插件,可以讓版本庫通過http協議,在網站上展現
創建版本庫,並修改權限
mkdir -p /svn/repos
創建兩個版本庫目錄
svnadmin create /svn/repos/test.cn
svnadmin create /svn/repos/kxinfo
啟動svn: svnserve -d -r /svn/repos
-d表示以daemon方式(后台運行)運行
-r /var/repos指定svn根目錄是/svn/repos

2. 配置apache支持svn及檢查兩個動態庫是否安裝成功
find / -name mod_dav_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
find / -name mod_authz_svn.so
/usr/lib64/httpd/modules/mod_authz_svn.so
yum -y install mod_dav_svn
配置apache通過mod_dav_svn模塊訪問SVN服務器 vim /etc/httpd/conf.d/subversion.conf ---此文件為手動創建的,手動加入如下內容 <Location /svn> DAV svn SVNParentPath /svn/repos ----存放兩個倉庫:test.cn和kxinfo的真實目錄 AuthType Basic AuthName " SVN server of test!" AuthUserFile /home/svn/passwd ----passwd存儲用戶名和密碼 AuthzSVNAccessFile /home/svn/auth ----存放用戶的權限 Require valid-user </Location>

3. 創建存放用戶密碼文件和權限控制文件
htpasswd -c /home/svn/passwd TTT
# -c create, 創建/home/svn/passwd文件。會提示你輸入密碼,默認是MD5加密
htpasswd /home/svn/passwd www #后期再創建時,就不需要加-c參數,否則, 會把之前添加到/home/svn/passwd中信息,全部覆蓋。
vim /home/svn/auth #寫入以下內容
[/] ------這個表示在所有倉庫的根目錄下
TTT = rw ------TTT用戶對所有倉庫根目錄下的軟件版本庫有rw權限
[test.cn:/] -----test.cn的根目錄下的訪問權限
www = rw -----www倉庫具有讀和寫權限
[test.cn:/company] -----test.cn的根目錄下訪問權限
liutao = rw -----liutao用戶對test.cn的根目錄下company目錄有讀寫權限

4. 修改版本庫的權限,測試訪問
chown -R apache:apache /svn/repos/
http://192.168.0.170/svn/test.cn ----TTT和www都可以訪問
http://192.168.0.170/svn/test.cn/company ----liutao用戶只能訪問這個目錄


5. SVN客戶端使用說明
subversion windows客戶端TortoiseSVN配置:
http://tortoisesvn.net/about.zh.html
新建一個文件夾右鍵可以提交svn和從svn上下載



6. commit后可以訪問看到上傳的文件

7. 如果安裝svn客戶端后,右鍵沒有svn
7.1 出現如下,說明用錯了,需要右鍵文件夾,而不是直接點擊Tortoisesvn


7.2 點擊TortoiseSVN文件夾,選擇Settings--->General---->Contest Menu勾選如圖三個選項


7.3 如還沒用,選擇Icon Overlays--->Icon Set--->MufWin7--->應用--->保存
再允許--->regedit--->按照如下圖設置后重啟電腦


nginx反向代理
server {
listen 80;
listen 443 ssl http2;
servername www.testsvn.com;
location /svn {
proxy_pass http://localhost:88/svn;
}
}
