SVN搭建與遷移

系統:centos6.5

安裝過程:

yum install -y subversion #yum在線安裝

依賴如下:
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

安裝好之後查看svn版本
svnserve --version #查看是否安裝好svn

配置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             #項目名稱

防火牆開放端口:

iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart

啓動和關閉svn:

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 commit

linux平臺:

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章