linux 安装svn,并设置钩子来同步更新
http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
和 http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
1./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/local/subversion-1.6(此处指明位置)
(--prefix是指的安装目录,--without是不用apche 最后是使用依赖包)
2.make &&make install
3,在etc/profile 里面加入环境变量
SVNPATH=$PATH:/opt/subversion/bin
4.source profile 使环境变量生效
5,检查版本 svn --version svnserve --version(注意是两个横)
6.建立版本库目录 选择一个目录之后 建立 mkdir -p svn
cd svn 然后建立测试库 mkdir -p svntest
7.建立版本库
svnadmin create svntest
8.修改配置文件
cd svntest/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
vi svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
vi authz
[svntest:/]
lipeng = rw
#给svntest仓库添加一个名称为lipeng 的用户,权限为可写。
vi passwd
lipeng = 123456
为这个设置密码
svnserve.conf
(注意:这只是在svntest下生效的用户名密码,也可以统一写到svn/conf/authz和password里面,就相当于全局的,只要在版本库中的
引入即可)
9.启SVN服务,并指定SVN的根目录:
[root@youxia201 test]# svnserve -d -r /usr/local/svn/
-r指定服务器的根目录
-d表示在后台运行
服务已经正常起来:
[root@youxia201 test]# netstat -tunlp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 8646/svnserve
10、开放服务器端口
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/.
11,通过 netstat -tunlp | grep svn 找到进程id ,kill -9 id掉
svnserve -d -r /usr/local/svn/ --listen-port 843 用这个端口打开
然后重新启动就可以了
12.由于svn服务器和客户端是不一样的,所以不能从服务器看到源文件,请注意
但是可以在linux下新建一个文件夹,然后执行命令 svn checkout svn://192.168.1.200:9999/ 会提示输入linux终端的密码,以及svn用户名以及密码
二,设置钩子
我们知道要把svn的内容更新到web目录需要手动的svn
up,但是今天笔者教你自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单
的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。
第一步:建立你的web程序目录
mkdir /var/www/html/test
进入/var/www/html/test目录。
svn checkout svn://121.14.177.178:843/svntest 不重命名文件夹,直接在当前目录下检出
svn checkout svn://121.14.177.178:843/svntest test 检出文件并且重命名文件夹
第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】
添加脚本内容如下:
#!/bin/sh
SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
WEB=/var/www/html/test #要更新的目录
$SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,写法少有不同)
其中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 from native encoding to 'UTF-8'
/usr/bin/svn update --username lxy --password 123456 /var/www/myproject 执行更新操作
如果提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限
如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交
linux 安装svn,并设置钩子来同步更新的更多相关文章
- Linux下一键安装包的基础上安装SVN及实现nginx web同步更新
Linux下一键安装包的基础上安装SVN及实现nginx web同步更新 一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install sub ...
- 安装SVN及实现nginx web同步更新需要在WDCP一键安装包的基础上
一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install subversion 3.测试是否安装成功 /usr/bin/svnserve ...
- Linux下svn提交文件后自动同步更新到网站目录
有时,对于多文件需要上传到服务器的时候将会很麻烦,但是如果使用svn的钩子脚本就容易实现本地提交svn后,自动同步代码文件到远程服务器的网站目录下,而不必手动上传了. 首先,在网站目录下checkou ...
- LINUX安装SVN+添加自动同步+远程下载最新代码
LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...
- Linux安装svn服务图文详解 ;出现No repository found in 'svn***问题
Linux安装svn服务 ** 示例都是用的root权限,可选择用 sudo** 1:检查 安装条件为:Linux(centos)上未安装过svn服务,若安装过或安装失败请自行删除,这里不多介绍.检查 ...
- linux安装配置SVN并设置钩子
安装说明 系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 检查已安装版本 #检查是否安装了低版本的SVN 1 rpm ...
- linux 安装SVN
1.环境centos6.4 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve -d -r /www/sv ...
- Linux 安装SVN服务器 (转)
一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...
- 160425、linux安装SVN服务器
1:查看linux是否已经安装svn服务 [root@nb ~]# rpm -qa subversion subversion-1.6.11-15.el6_7.x86_64 2:安装svn #yum ...
随机推荐
- IEnumerable,IQueryable的区别
IEnumerable,IQueryable之前世今生 IEnumerable<T>在.Net2.0中我们已经很熟悉了.你想要利用Foreach迭代吗?实现IEnumerable<T ...
- 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用
文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy201 ...
- C++ 对象模型具体评论(特别easy理解力)
c++对象模型系列 转 一.指针与引用 一 概括 指针和引用,在C++的软件开发中非经常见,假设能恰当的使用它们可以极大的提 高整个软件的效率,可是非常多的C++学习者对它们的各种使用情况并非都了解, ...
- Drop dual
一些互联网用户删除dual表还有一个问题: 删除dual时间表hang直播,然后直接shutdown abort.话又说回来,当您启动数据库.发现open时间已经hang直播.但该数据库是真正开放的另 ...
- Asp.net实现URL重写
原文:Asp.net实现URL重写 [概述] URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读 ...
- sgu139Help Needed!推断15数码是否有解,以及推断N数码是否有解的推论
是这种,要你推断一个15数码是否有解. 我不会,找了这样一个方法. 将16个数按出现顺序存放在一维数组里面, 然后累加每一个数的逆序对数目, 还要加上0到终态的曼哈顿距离,得到一个数x. 因为最后的状 ...
- iOS7 UIKit动力学-碰撞特性UICollisionBehavior 上
我们谈到了重力上述财产UIGravityBehavior这个类. 非常明确的看法,当我们添加的属性的严重性后,,苹果UIview像掉进无底洞,地下坠,不断的加速.而如今呢,我们要在这个手机屏幕上,加入 ...
- checkbox
选择功能和反选
使用jQuery实现checkbox全补选和反选功能.什么时候checkbox选择禁用时,不涉及功能 <!DOCTYPE html> <html> <head> & ...
- atitit.ajax bp dwr 3.该票据安排使用的流量汇总 VO9o.....
atitit.ajax bp dwr 3.该票据安排使用的流量汇总 VO9o..... 1. 安装配置 1 1.1. 下载 dwr.jar 1M 1 1.2. 配置注解方式..web.xml 1 2 ...
- 跟我一起写Makefile-陈皓
跟我一起写Makefile GNU make