六、修改權限密碼檔案,配置檔案修改立即生效,不用重新開機,2個項目庫公用一個密碼和認證檔案
# cat /usr/local/svn/conf/passwd
[users]
zhao = 123456
lee = 654321
# cat /usr/local/svn/conf/authz
[groups]
admin = zhao
[/] #表示根目錄,根目錄是指svnserve啟動時指定的,比如/opt/svndata目錄,表示對全部版本庫設定權限
@admin = rw
[repos1:/abc/aaa]
lee = rw
[repos2:/pass]
lee =
authz 說明:
[groups]
= ,
[:/項目/目錄]
@ =
=
/表示根目錄及以下,根目錄是svnserve啟動時指定的,剛才指定的為/opt/svndata,這樣/就是表示對全部版本庫設定權限
repos1:/表示對版本庫1設定權限
repos2:/abc對版本庫2中的abc項目設定權限
repos2:/abc/aaa對版本庫2中的abc項目的aaa目錄設定權限
7.svn配置完畢,删除無用檔案
rm /opt/svndata/repos1/conf/authz
rm /opt/svndata/repos1/conf/passwd
rm /opt/svndata/repos2/conf/authz
rm /opt/svndata/repos2/conf/passwd
8、啟動SVN
svnserve -d -r /opt/svndata
-d:以daemon方式背景運作
-r :指定根目錄/opt/svndata
#項目導入,在linux上先将源代碼目錄run裡面的東西導入在svn倉庫中的db裡面,這樣在windows用戶端checkout就可導出來了,顯示的就是代碼
#svn import run/ file:///opt/svndata/repos2/ -m "initial import"
run目錄就是源代碼目錄
在Linux上進行windows的check等操作
1、将項目2中代碼check出來放在網站應用指定的目錄中,這個和windows一樣
co就是check的意思
svn co svn://127.0.0.1/repos2 /home/web/repos2
2、使用svnadmin create建立的版本庫下面會有一個hooks目錄,裡面有很多鈎子程式,這樣也就是在windows上commit操作送出後就會自動執行post-commit鈎子程式
cd /opt/svndata/repos1/hooks 不同版本目錄不一樣
vi post-commit
#!/bin/bash
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
/usr/bin/svn update /home/web/repos1 --username zhao --password 123456
儲存後,加上權限
chmoe +x post-commit
這樣在windows傳完新代碼檔案後就會自動的指定鈎子程式自動同步到代碼目錄中去
這裡的各配置項意思是:
anon-access指匿名通路的權限,可以是read,write,none,預設為read,這個建議配為none
auth-access指認證使用者的權限,可以是read,write,none,預設為write
password-db指密碼資料庫的路徑,去掉前面的,存的是認證使用者的使用者名和密碼,
username=passwd
authz-db實作了以路徑為基礎的授權,也就是判斷使用者是否有操作對應路徑的權限