详解使用SVN配置自动更新WEB服务器

本节和大家讨论一下SVN配置自动更新WEB服务器问题,通过一个简单的实例向大家介绍一下,通过本文的学习希望你能学到更多的知识。

SVN配置自动更新WEB服务器最近有个小项目,需要用SVN来进行版本控制。项目组的同僚有8个人,大家都在本地开发,然后提交到服务器服务器就是其中一台机器。专门安排一个测试员来进行项目测试,但测试人员每次测试之前都需要去更新SVN,再拷贝到web服务器上,然后才能测试,这样很不方便。所以希望当开发人员有更新时,代svnmkdirsvn://localhost/myproject随即关闭记事本打开的log文件窗口后按"c"键继续后生成项目树。一般情况,我们在创建文件根路径后应该在创建三个目录:branches、tags、trunk,这三个目录是Subversion需要的三个目录。对于checkout、commit、update等操作可以通过svn命令行方式执行,也可以用TortoiseSVN的windows菜单完成,非常简单咯。

在这以上,基本按照它的说明,就能让svn正常运作,但branches、tags、trunk三个目录的使用我还没有学习。
SVN配置自动更新WEB服务器的自动更新的配置:
开发中经常要在更新SVN的同时要更新WEB服务器。可以用过Subversion的钩子(Hook)来实现。

以下是Windows操作系统下的配置:
在SVN库的hooks目录下面新建post-commit.bat文件,用记事本打开,然后写入如下的代码:@echooff
SETREPOS=%1
SETREV=%2
SETDIR=%REPOS%/hooks
SETPATH=%PATH%;
SETWORKING_COPY=D:\Websites\Latisse
svnupdate%WORKING_COPY%CusernameuserCpasswordpwd
此处的D:\Websites\Latisse即是WEB网站的目录(当然得先建好这个目录,并且从svn服务器上签出相应的项目)。这样在用户提交完后,便会自动更新到WEB服务器上。

需要注意到问题是:
1.不要在WEB网站文件夹下作修改或其它操作,防止出现文件夹被锁。无法更新。
2.在这里我明确写明了用户名(user),密码(pwd)。在我设置时发现,如果没有设置的话会出现错误,在直接运行这个bat文件时是能正常执行的,但是,在Subversion提交后却不能正常运行。并且可以看到服务器进程中会出现cmd,svn两个进程,并且不会自己结束,而用户在提交内容到服务器后,会出现客户端无法正常返回的问题。
3.如果运行不能正常,可以通过下面的方法看到出错信息:
将刚才的post-commit.bat改名为post-commit-run.bat,然后再建一个post-commit.bat的文件,里面写入如下的代码:call%~dp0post-commit-run.bat%*>%1/hooks/post-commit.log2>&1
这样运行结果就会被写入到post-commit.log文件中,如果出错,也可以找到出错的原因。

相关推荐