系統:centos6.5php
安裝過程:linux
yum install -y subversion #yum在線安裝vim
依賴以下:
apr.x86_64 0:1.3.9-5.el6_2
apr-util.x86_64 0:1.3.9-3.el6_0.1
neon.x86_64 0:0.29.3-3.el6_4
pakchois.x86_64 0:0.4-3.2.el6 windows
安裝好以後查看svn版本
svnserve --version #查看是否安裝好svncentos
配置SVN服務器
mkdir /home/svn/game -p #建立倉庫目錄 svnadmin create /home/svn/game #建立項目 svnadmin delete /home/svn/game #刪除一個完整的項目 ls /home/svn/game/ #檢查是否建立成功,若成功,該目錄下回多出幾個文件夾 ls /home/svn/game/conf #該目錄下有三個配置文件authz passwd svnserve.conf authz #用戶權限 passwd #用戶密碼 svnserve.conf #svn配置文件
vi authz #編輯用戶權限 [groups] server=svn1,svn2 client=client1,client2 [game:/server] @server=rw [game:/client] @client=rw @server=rw
vi passwd #建立用戶及密碼 [users] svn1=123456 svn2=123456 client1=123456 client2=123456
vi svnserve.conf anon-access = none #匿名訪問者權限 auth-access = write #驗證用戶權限 password-db = /home/svn/game/passwd #密碼文件地址 authz-db = /home/svn/game/authz #權限文件地址 realm =game #項目名稱
防火牆開放端口:dom
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT /etc/rc.d/init.d/iptables save service iptables restart
啓動和關閉svn:tcp
svnserve -d -r /home/svn #-d守護進程,-r:svn根目錄 vi /etc/rc.d/rc.local #加入開機啓動 /usr/bin/svnserve -d -r /home/svn/ #啓動svn killall svnserve #關閉svn
svn客戶端操做
windows平臺
svn://192.168.99.146/game
checkout
在game下新建server和client目錄
右鍵add選中server和client目錄
右鍵svn update
右鍵svn commitide
linux平臺:svn
svn checkout -r path svn checkout svn://192.168.1.1/pro/domain #svn checkout 簡寫 svn co svn update #將當前目錄及子目錄更新到最新版本 簡寫 svn up svn update -r 200 test.php #將當前目錄及子目錄中的文件test.php,回退到版本200 svn update test.php #更新 test.php 與版本庫同步
svn備份
svnadmin dump方式 svnadmin dump (/repository/directory) > dumpfile #將原來的Repository導出爲一個文件dumpfile 在另一臺機器上配置一樣的SVN服務器。 svnadmin load (/repository/directory) < dumpfile # 將dumpfile導入到新的repository 目錄中 /opt/svn/iitshare/conf目錄下 # 將原先服務器的配置文件備份後複製到新服務器中 authz、passwd、svnserve.conf文件
svn強制log
SVN Server在每一個倉庫中的hooks裏都有個pre-commit.tmpl文件,修改這個文件爲pre-commit並添加可執行權限:chmod +x pre-commit
pre-commit文件內容以下:
vim pre-commit
REPOS="$1" TXN="$2" # Make sure that the log message contains some text. SVNLOOK=/usr/bin/svnlook LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` if [ "$LOGMSG" -lt 10 ]; #若是logmsg少於10字節 then echo -e "Empty log message not allowed. Commit aborted!" 1>&2 #回顯警告內容 exit 1 fi # All checks passed, so allow the commit. exit 0