1、倉庫放在 /var/svn/ 目錄下,並且倉庫名為 project
2、創建用戶組user,該組下添加兩個成員user1、user2,密碼直接用用戶名,兩用戶可以checkout代碼和提交代碼
3、利用SVN的鈎子實現當倉庫的代碼更新的時候自動同步至我們的web目錄,在這里,我的web目錄在 /var/www/html 下
一、搭建svn環境並創建倉庫:
1、安裝Subversion:
yum install -y subversion
2、檢測是否安裝成功(查看svn版本號)
svnserve --version
3、創建版本庫
先建目錄 mkdir /var/svn
CD到這個目錄 cd /var/svn
創建版本庫 svnadmin create /var/svn/project cd project (會看到自動生成的版本庫文件 conf db format hooks locks README.txt)
二、創建用戶組及用戶:
1、 進入版本庫中的配置目錄conf(三個文件): svn服務綜合配置文件(svnserve.conf)、 用戶名口令文件(passwd)、權限配置文件(authz)。
2、修改權限配置文件:vim authz

3、配置用戶名命令文件:vim passwd

4、配置SVN服務綜合配置文件svnserve.conf
找到以下配置項,將前面的#號去掉,然后做相應的配置
anon-access = none 匿名用戶訪問權限:無
auth-access = write 普通用戶訪問權限:讀、寫
password-db = passwd 密碼文件
authz-db = authz 權限配置文件
realm = /var/svn/project 版本庫所在
注意:所有以上的配置項都需要頂格,即前面不能預留空格,否則報錯
5、啟動svn服務:
svnserve -d -r /var/svn
如果提示:svnserve: E000098: Can't bind server socket: Address already in use
證明現在svn已經被啟動了,由於我們修改了配置文件,因此要重啟svn服務
停止svn服務 killall svnserve
再運行 svnserve -d -r /var/svn,進行啟動服務
6、測試服務器:
我們在web目錄測試(/www/html)
cd //www/html
svn co svn://localhost/project (如果提示:Checked out revision 1. 表示checkout成功)
我們添加新文件來測試是否提交成功
cd //www/html
touch index.php
svn add index.php 成功的話會顯示 (A index.php)
svn commit index.php -m "測試提交文件" (如果成功會顯示:Adding index.php Transmitting file data . Committed revision 2. 則表示我們svn服務器搭建成功!文件已經能夠推送了。)
7、本地拉取、推送


輸入用戶名稱和密碼(如果失敗去看看 端口3690是否被禁用 )
三、實現svn更新自動同步到web目錄:
1、在web目錄中checkout版本庫
這一步算是比較關鍵的一步了,當時我搭建的時候試了無數次,就是缺少了這一步。把剛才checkout的版本庫刪掉,我們來一次比較正式的checkout:
svn co svn://localhost/project /www/html --username user1(SVN賬號) --user1(SVN密碼)
進入/var/svn/project/hooks下,建立post-commit文件:
cd /var/svn/project/hooks
vim post-commit
//在該文件里添加如下代碼,保存
#!/bin/sh
#設定環境變量,如果沒有設定可能會出現update報錯
#設定語言,根據系統語言設置,如果是GBK就設置為 LANG=zh_CN.GBK
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn //這里不用改
WEB_PATH=/www/html //web目錄,如果你的不同,可以改
//這里的用戶隨便一個就好
$SVN_PATH update $WEB_PATH --username 'user1' --password 'user1' --no-auth-cache
保存退出。
修改post-commit用戶為www目錄用戶
chown apache:apache post-commit //我的 /home/www 的用戶組和所有者都是apache
給post-commit 執行權限:
chmod 755 post-commit
本博客主要參考了:http://blog.csdn.net/baidu_30000217/article/details/51396016?locationNum=1
