Linux安装SVN实现自动同步到Web目录
一:安装SVN
1,检查服务器是否安装SVN
svn --version 已安装: svn, version 1.6.11 (r934486) compiled Aug 17 2015, 08:37:43 Copyright (C) 2000-2009 CollabNet. Subversion is open source software, see http://subversion.tigris.org/ This product includes software developed by CollabNet (http://www.Collab.Net/). The following repository access (RA) modules are available: * ra_neon : Module for accessing a repository via WebDAV protocol using Neon. - handles 'http' scheme - handles 'https' scheme * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme 未安装: -bash: svn: command not found
2,未安装使用yum安装
yum install subversion
3,创建仓库目录(仓库目录可更改到其他目录,看你意愿)
mkdir –p /svn
4,创建项目版本库
svnadmin create /svn/davesvn --davesvn为版本库名称
5,创建成功后进入版本库目录
cd /svn/davesvn ls 查看目录下生成的文件 conf 存放版本库所用配置文件的目录 db 版本数据存储目录 format 存储一个整数的文件,此整数代表库层次结构版本 hooks 存放版本库勾子目录 locks 存储库锁目录,用来跟踪库的访问者 README.txt
6,接下来开始配置SVN
cd conf ls authz | 权限配置文件 passwd | 用户名口令文件 svnserve.conf | svn服务配置文件 //配置密码 XXX=XXX vim password [users] zhan = 123456 //配置权限 XXX=XXX vim authz [/] zhan = rw //配置svnserve.conf 取消以下注释 注意不要有空格 vim svnserve.conf anon-access = read #匿名用户可读 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = /svn/davesvn #认证空间名,版本库所在目录
7,启动SVN服务
svnserve -d -r /svn/davesvn -d 表示后台运行 -r 指定目录是 /svn/davesvn 若提示:svnserve: Can't bind server socket: Address already in use 表示服务已经启动,先停止服务 ps -ef | grep svn kill -9 [进程号] 杀掉进程
二,实现自动部署项目
1,使用post-commit实现自动部署
在/svn/davesvn/hooks下创建post-commit文件,文件设置可执行权限 cp post-commit.tmpl post-commit chmod 755 post-commit
2,打开post-commit文件,清空post-commit内容,加入以下内容
!/bin/sh export LANG=zh_CN.UTF-8 svn co svn://[你的ip地址]/davesvn [WEB实际目录] LOG_PATH=/tmp/svn_test.log WEB=[WEB实际目录] REPOS="$1" REV="$2" svn update --username [刚设置的SVN用户名] --password [刚设置的SVN密码] $WEB --no-auth-cache >> $LOG_PATH
3,最后回到shell
svn co svn://你的ip/davesvn [WEB目录] 按照提示输入账号密码实现自动同步
三,使用
SVN检出:查看是否可以正常检出 svn://服务器IP:3690/davesvn 正常检出后提交查看WEB目录是否实现同步内容
排坑:
svn错误:post-commit hook failed (exit code 1) with output. 1,检查post-commit里面设置的字符编码是否正确 原来是#export LANG=zh_CN.GBK 修改为export LANG=en_US.UTF-8即可(svn服务器默认是utf8) 2,检查post-commit里面设置的账号密码和SVN配置里面的账号密码是否正确 3,255错误:post-commit有没有给执行权限 4,查看服务器3690端口是否开启 4,最后无论在做什么,最主要的还是细致,看报错信息,不要慌张
相关推荐
ECSHOP专属建设 2020-11-13
xzjforDream 2020-09-23
fenggit 2020-09-15
起点 2020-08-17
leehbhs 2020-07-26
leehbhs 2020-07-04
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf
起点 2020-06-28
leehbhs 2020-06-20
dingqinghu 2020-06-16
dengweijunkedafu 2020-06-09
nebulali 2020-05-27
起点 2020-05-10
起点 2020-05-05
83520298 2020-05-04