linux安裝svn
wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz html
#解壓2個壓縮包到同一級linux
tar zxvf subversion-deps-1.6.6.tar.gznginx
cd subversion-1.6.6
web
#編譯 (--prefix是指的安裝目次,--without是不消apche 最後是應用依附包)shell
./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/local/subversion-1.6vim
#安裝
make && make installdom
#在etc/profile 裏面參加環境變量
export PATH=$PATH:/opt/svn/bintcp
#使景象變量生效ide
source /etc/profilesvn
#搜檢版本svn (是兩個橫)
svnserve --version
#建樹版本庫目錄 選擇一個 目錄 以後 建樹
mkdir -p /var/svnbox
cd /var/svnbox
#創建一個項目版本庫
svnadmin create www.domain.com
#修改配置文件
cd www.domain.com/conf && ll
-rw-r--r-- 1 root root 710 08-25 09:40 authz
-rw-r--r-- 1 root root 325 08-25 09:38 passwd
-rw-r--r-- 1 root root 1449 08-25 09:36 svnserve.conf
#修改總配置文件
vim svnserve.conf
anon-access = none
auth-access = write
password-db = passwd #密碼文件
authz-db = authz #帳戶
#給svntest倉庫添加一個名稱爲 fly 的用戶,權限爲可寫。
vi authz
[svntest:/]
fly = rw
#爲帳戶設置密碼
vim passwd
fly = xxxxxx
svnserve.conf
(重視:這只是在svntest下生效的用戶名暗碼,也能夠同一寫到svn/conf/authz和password裏面,就至關於全局的,只要在版本庫中的
引入便可)
#啓動SVN,並指定SVN的根目錄:
##這個目錄是版本庫目錄
svnserve -d -r /data/svnbox
-r指定辦事器的根目次
-d默示在後臺運行
#查看啓動狀態:
netstat -tunlp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 8646/svnserve
--------------------------若是開啓了防火牆
#開放SVN端口
svn默認端口是3690,你需要在防火牆上開放這個端口。
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
/sbin/service iptables save
你也能夠經由過程svnserve的--listen-port選項來指定一個已經開放的其餘端口,不過如許的話客戶端應用也必須家上端口,如svn://192.168.1.200:9999/.
#開放以後 重啓
netstat -tunlp | grep svn 找到過程id ,kill -9 id掉
# 用這個端口打開
svnserve -d -r /usr/local/subversion-1.6 --listen-port 843
而後從頭啓動就能夠了
------------------------------
配置鉤子
進入主目錄。
# /usr/bin/svn checkout svn://ip/www.domian.com ./ //檢出一份版本庫文件到當前目錄
第二步:在項目庫的 hooks/ 目錄下新建 post-commit 並賦予777權限 文件 【鉤子腳本】
添加腳本內容以下:
--------------------------------------------------------------------
#!/bin/sh
export LC_CTYPE=en_US.UTF-8//能添加中文字符
SVN=/usr/local/svn/bin/svn#這裏配置的是svn安裝bin目錄下的svn文件
WEB=/usr/local/nginx/html #要更新的目錄
$SVN update $WEB --username xxx --password xxx
其中SVN=右邊改爲 svn 命令位置
WEB=右邊改爲你實際的web目錄
第三步:讓post-commit有執行的權限 chmod 777 post-commit
--------------------------------------------------------------------
申明:
#!/bin/sh 申明是履行shell號令
export LANG=zh_CN.GBK 是爲懂得決svn post commit 中文亂碼,設置本地化編碼,由於個人體系爲GBK編碼,SVN默認是UTF-8編碼,如果不設置將會呈現錯誤,而履行不成功,錯誤標識爲svn: Can""t convert string native encoding to ""UTF-8""
/usr/bin/svn --username lxy --password 123456 /var/www/myproject 履行更新操縱
如果提示:post-commit hook failed (exit code 255) with no output付與post-commit文件可履行權限
如果您的默認編碼就是UTF-8的,要上傳中文文件,先將文件另存爲UTF-8格局在提交