本节和大家讨论一下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%–usernameuser–passwordpwd
此处的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文件中,如果出错,也可以找到出错的原因。
总结一下:
SVN配置自动更新WEB服务器时,svn的使用要点:
安装subversion
安装tortoiseSVN
创建储存库
导入(将需要版本控制的代码导入到储存库中)
检出(使用者将已经svn的代码检出到自己的地盘)
hooks钩子设置(将自动更新配置好)
创建web服务器目录并检出(这个目录就是测试员可以看的目录了,它会自动随着开发人员的更新而更新)
虽然钩子已经实现,但权限、用户组、目录结构架设等这方面仍然没有头绪。还好现在只是一个项目,留下官方说明文档,今后一步一步学习:http://svndoc.iusesvn.com/svnbook/1.4/SVN配置自动更新WEB服务器问题讲解完毕。
【编辑推荐】
- Linux下不常用的SVN 命令大揭秘
- Subversion和TortoiseSVN如何在Windows下进行构建SVN版本控制
- CentOS系统中安装subversion并使用svn+ssh访问
- SVN使用教程简单配置篇详解
- 在线指导:Windows系统服务自动运行对于SVN如何实现