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
#解压2个压缩包到同一级
tar zxvf subversion-deps-1.6.6.tar.gz
cd subversion-1.6.6
#编译 (--prefix是指的安装目次,--without是不消apche 最后是应用依附包)
./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/local/subversion-1.6
#安装
make && make install
#在etc/profile 里面参加环境变量
export PATH=$PATH:/opt/svn/bin
#使景象变量生效
source /etc/profile
#搜检版本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格局在提交