linux安裝svn+鉤子

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格局在提交

相關文章
相關標籤/搜索