環境 Centos6.x
cd /
yum install subversion
cd /website #建立svn目錄
mkdir svn
svnadmin create /website/svn/projectA //建立一個svn版本倉庫(projectA可以為svn項目名字)
cd /website/svn/projectA/conf //進入配置檔案目錄
修改配置svnserve.conf,authz,passwd這三個檔案(修改後無需重新開機subversion)
vi svnserve.conf
//把下面項前面的#号和空格去掉并修改(各項前面不能有空格),變成
anon-access = none #使非授權使用者無法通路
auth-access = write #使授權使用者有寫權限
password-db = passwd
realm = projectA # 認證命名空間,subversion會在認證提示裡顯示,并且作為憑證緩存的關鍵字,這裡設定成和項目名稱相同就可以了
儲存退出
vi authz
在[groups]下添加
[groups]
projectA = u1,u2 //建立一個projectA的組,并制定兩個使用者u1和u2
[/] //制定根目錄下的權限
@projectA = rw //projectA組使用者權限為讀寫
* = r //其他使用者隻有讀權限
儲存退出
vi passwd
在[users]下添加
[users]
u1 = p1 //使用者名u1的密碼為p1
u2 = 456 //使用者名u1的密碼為456
儲存退出
設定自啟動
vi /etc/rc.local
在touch /var/lock/subsys/local下面
添加下面一行
svnserve -d -r /website/svn
儲存退出
svn啟動
svnserve -d -r /website/svn
關閉svn服務
ps -ef|grep svnserve
看到類似 root 4967 1 0 Aug23 ? 00:00:00 svnserve -d -r repository/
其中4967為程序号
使用Kill指令殺死程序 kill -s 9 程序号,即 kill -s 9 4967
配置post-commit,實作自動同步svn版本庫檔案到web目錄
cd /website/svn/projectA/hooks
cp post-commit.tmpl post-commit
賦予post-commit可執行的權限
chmod 777 post-commit
vi post-commit
修改内容如下:
REPOS="$1"
REV="$2"
export LANG=zh_CN.UTF-8
SVN_PATH=/usr/bin/svn
WEB_PATH=/website/www/projectA
LOG_PATH=/tmp/svn_update.log
$SVN_PATH update $WEB_PATH --username u1 --password p1 --non-interactive
說明:export LANG=zh_CN.UTF-8防止中文亂碼,SVN_PATH為svn執行程式所在的目錄,WEB_PATH為web項目目錄,u1為svn使用者名,p1為密碼
伺服器checkout到本地
預設checkout到目前目錄的,是以執行前先切換到你要到的目錄, cd /website
svn checkout svn://localhost/projectA
或者
svn checkout svn://120.77.176.18/projectA #這裡的120.77.176.18為你的伺服器ip
也可使用簡寫 svn co svn://120.77.176.18/projectA
需要輸入root密碼回車,輸入svn賬号回車,輸入svn密碼回車
順便給www目錄和其子目錄權限
cd /website/www
chmod -R 777 *
更新指令
切換到你的項目目錄
cd /website/www/projectA
執行 svn update
svnadmin和svn的指令是不同的,具體可用svnadmin help和svn help檢視
svn指令
指令說明
SVN規範與沖突解決
用戶端連接配接

===================忽略檔案,檔案夾的送出=============
svn使用
svn propedit svn:ignore
dir
指令忽略檔案和檔案夾,其中dir是你的svn項目的檔案夾,
如 svn propedit svn:ignore /website/www/projectA
會車發現提示錯誤 ‘svn: E205007: 沒有設定 SVN_EDITOR,VISUAL 或 EDITOR 環境變量,運作時的配置參數中也沒有 “editor-cmd” 選項’
需要先設定SVN預設的編輯器
export SVN_EDITOR=vim
再次執行 svn propedit svn:ignore /website/www/projectA
進入到編輯狀态,在裡面編輯你要忽略的檔案或檔案夾即可(一行一項)
如:
test.php
cache
這時還需要送出,這個svn:ignore屬性才正式生效
cd /website/www/projectA
svn ci -m '忽略test.php檔案和cache檔案夾'