在開發的過程當中,咱們須要使用 svn進行版本控制。html
1.web
yum install subversion數據庫
svnserve --version
查看具體的版本信息,若是有結果,則表明SVN安裝成功。vim
/home/svn/repo
#建立倉庫
svnadmin create /home/svn/repo
3.進行配置:服務器
vim /home/svn/repo/conf/svnserve.confapp
[general]
anon-access = none //匿名訪問的權限,設置爲none表示爲不容許,默認是read
auth-access = write //能夠是read,write,none,默認是write
password-db = passwd //密碼數據庫的路徑,去掉前面的#
authz-db = authz
4.配置svn的密碼文件:tcp
vim /home/svn/repo/conf/passwd
[user]
username = passwd
上面的例子爲填寫用戶名和密碼,若是是water 密碼爲888888ide
[user]
water = 888888
配置文件 /home/svn/repo/conf/authzsvn
[groups]
[/]
terry = rw
#表明terry 這個帳戶對應的路徑爲根目錄,對根目錄下的全部文件和文件夾有讀寫的權限
[/magento]
terry = r
#表明terry這個帳戶對應的路徑是magento文件夾,在這個目錄下的文件只有讀的權限
[/magento/app/etc/local.xml]
terry =
#表明terry對上面這個文件不可見。即:不可讀,不可寫
設置可讀工具
vim /home/svn/repo/conf/svnserve.conf
anon-access = none
設置完成後,關閉svn,重啓
關閉svn: killall svnserve
啓動svn: svnserve -d -r /home/svn/repo --listen-host ip地址
開放端口:
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save
通過了4步驟,咱們建立了帳戶,設置了帳戶的權限,當咱們用svn工具訪問svn://ip地址,就能夠訪問了。
在本地能夠經過上傳文件到svn服務器
咱們想要的是svn中提交的文件,複製到服務器的web路徑中,因此咱們須要把svn中的數據提交到web路徑
這裏咱們使用的命令式svn up,強制提交:svn up –force
首先咱們須要先設置,把svn中的路徑,對應的web目錄
譬如:svn://192.168.1.12/magento 對應到/www/web/come/public_html,咱們的配置爲
svn co svn://192.168.1.12/magento /www/web/come/public_html
而後須要輸入root密碼,
而後須要輸入提交帳戶,這個帳戶就是svn的在上面配置文件中添加的帳戶,
更改svn up 帳戶命令:svn co --username xxx svn://192.168.1.12/magento
6
若是svn up 報錯:
Skipped ‘.’
須要到輸出的路徑下,譬如到/www/web/come/public_html下面svn up 就能夠了
7
開機啓動svn
vi /etc/rc.local
在最後一行加入:
svnserve -d -r /home/svn/repo
8
自動更新,不須要svn up
svn co svn://115.29.18.29/erp /www/web/
在SVN 項目版本庫的存儲目錄下的hooks 目錄,新創建一個post-commit文件:
vi /home/svn/repo/hooks/post-commit
touch /home/svn/repo/hooks/svn_hook.log
chmod 777 -R /home/svn/repo/hooks/svn_hook.log
#!/bin/sh
REPOS="$1"
REV="$2"
WEB=/www/web
export LANG=en_US.UTF-8
echo whoami
,$REPOS,$REV >> /home/svn/repo/hooks/svn_hook.log
svn update $WEB
保存,退出。
權限:chmod 777 post-commit
測試,看腳本是否有權限問題:
複製代碼 代碼示例:
./post-commit
之後每次客戶端提交操做,就會自動運行該腳本。