利用SVN HOOKS脚本同步服务器

内部测试服务器同时兼做SVN服务器,所以配置了SVN HOOKS的post-commit脚本,在团队成员成功提交了文件后,自动完成测试服务器的更新。
步骤如下:
1. cd /svnroot/hooks
2. cp post-commit.tmpl post-commit
3. 将post-commit的内容修改为:
#!/bin/sh
SVN=/usr/bin/svn
WEB=/var/web/
$SVN up --username server --password 123456 $WEB
其中,/var/web为测试服务器documentRoot的位置,是用
svn checkout svn://192.168.1.1/web /var/web
命令检出的。
4. 修改post-commit的权限
chmod 755 post-commit

重启svn,在red had e5中,没有成功,google一下,原来是编码问题,添加一条export语句,文件内容为:
#!/bin/sh
export lang = en_US.UTF-8
SVN=/usr/bin/svn
WEB=/var/web/
$SVN up --username server --password 123456 $WEB

成功

服务器硬件升级,改用ubuntu,所有步骤一仍其旧,失败,百思不得其解。
增加一条语句:
whoami > /var/web/a.txt
发现是用root账号执行的(之所以会这样,可能因为我没有把svn配置为apache模式,直接用svn://访问)。检出时用的是默认账号下:
sudo svn checkout svn://192.168.1.1/web /var/web
没有root账号的信息被存储。
su root
svn up /var/web
根据提示操作。
再提交文件,查看测试服务器文件版本,成功

时间: 2024-11-07 19:21:19

利用SVN HOOKS脚本同步服务器的相关文章

使用svn hooks 脚本post-commit时遇到的故障

由于网站上线,需要把新添加功能上传到测试环境进行测试,但由于程序员每天有大量的修改,如果总是登陆服务器手动更新svn工作副本(测试环境)太耗时耗精力,进而增加svn进行commit时,测试环境即时更新的功能. post-commit脚本: #!/bin/sh REPOS="$1" REV="$2" export LANG=en_US.UTF-8 /usr/bin/svn update /data0/htdocs/xxx.xxx.xx.xxx --username u

如何利用svn自动同步更新到网站服务器

我们最终的目的是:当本地提交后,SVN服务器自动更新服务器端指定WEB目录内的文件 实现方法: 找到服务器端 SVN版本库所在的目录(目录名称是Repositories),这个目录是在安装VisualSVN Server设置的,根据你安装时的设置找到Repositories这个目录,在这个目录下面找到你创建的项目目录,在项目目录下面找到hooks目 录,在此目录中创建一个名为post-commit.bat的批处理文件,内容如下: @echo off "D:\VisualSVN Server\bi

利用SVN钩子同步程序注意事项

暂时记下,此文章内容稍后验证. 前言:其实利用SVN实时同步到WEB服务器即时展现出来的文章已经到处都是,但是我在做的时候 还是有不少的小问题,很多文章也没有提出来过,还有同步也是,我还是记录下自己做过的尤其是一些细节,时间一长又会忘掉了. 同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上. 知识点:1.SVN的ho

svn hooks 同步设置

昨天配置了一下午svn  hooks 本了很简单的一件事情,却因为 一个https弄的异常难搞. 在hooks的目录下,编辑 post_commit之后,始终无法updae,原因是,需要ssl验证主机. 在网上查看了下,用了svn ls  https://****之后,弹出需要确认,输入p,输入密码之后还是不行. 于是,我怀疑是用户的是.svn+apache  做的https协议.应该是用apache用户跑的吧. 可是apache用户我设置的是没有登陆权限的.怎么办? 只好usermod  修改

windows svn利用钩子实现代码同步到web目录

思路:  找 到SVN Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹.在该文件夹中添加一个post- commit文件:当有commit动作发生时(提交到SVN Server时)就会执行这个post-commit文件,在该文件实现数据的复制. 实例:  环境:SVN Server与测试用的Web Server在同一台Windows系统服务器上,SVN Server使用的是VisualSVN,Web Server使用的是Apache.项目的

分享一个生产环境中利用SVN上线代码的脚本

本文讲述的是利用SVN+RSYNC上线代码的生产案例,适用于小型公司及企业,让运维从频繁的上线代码中解脱出来.以下对应的web服务器也适用于Windows服务器及Linux服务器 REPOS="$1" REV="$2" export LANG=zh_CN.UTF-8 export RSYNC_PASSWORD=RSYNC_PASSWORD RSYNC_USER=RSYNC_USER PROJECT_NAME=`basename $REPOS` SVN_DIR=/sv

用脚本同步android项目至服务器最新版本

#!/bin/sh # ROOT_DIR=/backup/ PRJ_NAME=6592wetcust BRR_NAME=mydev cd $ROOT_DIR$PRJ_NAME"/" echo ">>>>>>>>.. repo clean ..<<<<<<<<<<<<<" repo forall -c git reset --hard repo

svn hooks使用

最近要将某个目录做samba共享出去,而想通过svn同步文档到svn,然后通过svn hooks 同步到共享目录,实现自动化 现在svn服务器和samba server再同一台机器上: 在svn路径下找到hooks目录,下面有很多脚本如下: post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmplpost-lock.tmpl pre-commit.tmpl pre-unlock.tmplpost-revprop-change.tmpl p

svn钩子自动化同步代码提交任务

##############################################################第一种方式:svn服务端  也是rsync的客户端web        是rsync的服务端svn服务端执行:[[email protected] ~]#sh yum-svn02.sh[[email protected] ~]#mkdir /var/www/bbs -p[[email protected] ~]#svn checkout http://192.168.13.