SVN协同开发时服务端与线上APACHE测试环境网站同步记录 转

不知道有没朋友遇到过这样一个问题,就是在SVN公司或团队协同开发时,需要布置一个公共的WEB测试地址,以供大家随时线上测试这样的事情。

方法其实很简单,有过在服务器上架设SVN服务端的朋友都能大概摸到个流程,无非就是启用一个POST-COMMIT钩子脚本,在各个开发人员成功commit后自动部署脚本。

先共享一下我的方法

先在SSH终端中执行一下最新版本导出到测试的apache 网站目录

/usr/bin/svn co svn://SVN地址 /home/web/




然后上传post-commit文件到  /你的路径/svn/repository/hooks/下面

post-commit内容:

 程序代码
#!/bin/sh
# /usr/bin/svn co svn://SVN地址 /home/web/  这个测试不成功
svn up /var/www/html/web
 



至此,可以试试运行一下这个脚本试试,

./post-commit

 当提示类似版本信息比如: 程序代码

Checked out revision 22.



就基本上完成了大概的操作了。

剩下的,对该文件 赋予执行权限,并加入到apache组

 程序代码

chown apache:apache ./post-commit
chown a+x ./post-commit



这样操作后绝对不会在 commit时出现比如“post-commit hook failed (exit code 255) with no output” 这样的错误了。



但最主要有一个问题,怕是连老手都有可能碰到的非技术问题,就是 POST-COMMIT 的编码问题了;

在服务器上直接./post-commit 执行这个脚本时,如果编码有问题的话,会出现类似下面的异常状况。

 引用内容
/bin/sh^M: bad interpreter: No such file or directory




由于本人不习惯直接在 ssh终端上修改文件,基本上都是直接用ROOT账户登陆 CuteFTP 上下载操作的。所以需要将该文件用 editplus转成 UTF-8 格式就行,至于其它编辑器,暂时就没有去总结了。

原文地址:https://www.cnblogs.com/helloyb/p/2849225.html