1. 程式人生 > >centos6.5中的svn部署過程

centos6.5中的svn部署過程

red tin enc 開放 -c centos6 cor 格式 warning

centod6.5下的svn部署過程

安裝:

yum -y install subversion  ,可用rpm -ql subversion查看svn的安裝目錄,默認在/usr/bin下

創建版本庫:

進入conf修改配置文件:

vim passwd 進去後將以下信息添加在末尾
[users]
# harry = harryssecret
# sally = sallyssecret
用戶名 = 密碼      #用戶名和密碼,這裏可以添加多個用戶名和密碼

vim authz  添加在末尾
...
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
users = 用戶1,用戶2                #用戶組 = 用戶 (這裏用戶可以有多個)
[/]
@users = rw

vim svnserve.conf 關閉註釋以及修改變量
...
anon-access = none #匿名用戶不可操作
auth-access = write #授權用戶可寫
password-db = /data/tools/svn/repos1/conf/passwd #使用哪個文件作為賬號文件
authz-db = /data/tools/svn/repos1/conf/authz #使用哪個文件作為權限文件
realm = /data/tools/svn/repos1 # 認證空間名,版本庫所在目錄,和之前的一樣

開啟和關閉服務

1.編輯服務進程文件
vim /etc/init.d/svnserve 在最前面增加一行
OPTIONS=" -r /data/tools/svn"
2.啟動svnserve服務
svnserve -d -r /data/tools/repos1   #開啟     或者使用service svnserve restart
killall svnserve     #關閉
ps aux |greo svnserve  #查看是否在運行
3.設置svn開機自啟動
chkconfig svnserve on

打開端口

這一步很重要,如果你都配置完了卻發現連接不上,那一定是端口沒有打開,默認端口是3690.

 iptables -I INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT  #開放端口
  service iptables save #保存 iptables 規則(如不能保存請使用其他方法保存

測試

1.svn co svn://127.0.0.1/repos1 svntest --username toomee --password toomee1234
 ----------------------------------------------------------------------- 
ATTENTION!  Your password for authentication realm:
   <svn://127.0.0.1:3690> My First Repository
can only be stored to disk unencrypted!  You are advised to configure 
your system so that Subversion can store passwords encrypted, if 
possible.  See the documentation for details.
You can avoid future appearances of this warning by setting the value 
of the ‘store-plaintext-passwords‘ option to either ‘yes‘ or ‘no‘ in 
‘/root/.subversion/servers‘. 
----------------------------------------------------------------------- 
Store password unencrypted (yes/no)? yes 
A    svntest/Desktop.ini 
Checked out revision 1. 

2.touch svntest/test 
3.svn update svntest/ 
4.svn add svntest/test 
A         svntest/test 
5.svn ci -m "test" svntest/test 
Adding         svntest/test 
Transmitting file data . 
Committed revision 2. 

客戶端連接

Windows

使用TortoiseSVN,url填寫svn://你的服務器ip,賬號密碼填剛剛設置的。

Mac

使用CornerStone,url填寫svn://你的服務器ip,賬號密碼填剛剛設置的。

自動部署

粗略的可以理解svn客戶端將修改信息以一定格式傳輸到服務端保存在固定格式的文件裏面,svn up的時候再將這些文件裏的信息生效到代碼目錄裏。我們有時候需要在服務端實時的看到代碼更新信息,這就用到了post-commit鉤子:

在客戶端commit的時候觸發服務端到/data/tools/svn/repos1執行svn up來更新文件,

同時減少日誌文件的大小,防止服務端當機後的日誌損失。

cd /data/tools/svn/repos1/hooks  #你的版本倉庫目錄
cp post-commit.tmpl post-commit

編輯post-commit:註釋掉最後一行,添加

vim post-commit

export LANG=en_US.UTF-8
/usr/bin/svn update --force /data/tools/svn/repos1

另外,post-commit腳本必須有x權限。

chmod +x post-commit

到這裏hook鉤子就配置好了,重啟svn進程,即可看到客戶端commit後文件同步更新。

centos6.5中的svn部署過程