SVN同步测试服务器创建方法大揭秘

开发 项目管理
在学习SVN的过程中,你可能会遇到SVN同步测试服务器的问题,在这里和大家分享一下,希望通过本文的学习大家对SVN同步测试服务器创建方法有一定的认识。

本节简单向大家描述一下如何建立一个SVN同步测试服务器,这是在学习SVN过程中可能会遇到的问题,这里我发表一下个人理解,和大家讨论讨论,欢迎大家一起来学习SVN同步测试服务器创建方法。
很多人开始使用SVN之后,就想着,要建立一个测试用的服务器,不需要把文件update到本地再进行测试。这个在我以前的一篇文章中写过,但当时理解也不深,也写得很含糊。现在连自己都看不懂了。

1.SVN同步测试服务器创建原理:基于SVN的钩子,即hook。在SVN执行一个操作时,那会相应的首先去调用相关的钩子程序(如果存在的话)。那么实现一个同步的测试服务器,我们只需要在一个用户执行完毕一个commit操作之后,让钩子程序去自动更新测试服务器的文件即可。通过这个思路,我们需要作的就是建立一个post-commit的钩子。
钩子文件在你的svn源目录下,即存放SVN版本数据的文件夹。以前面我写的两篇文章中的情况为例,
文一(win)的钩子文件应该在E:\svn2\hooks
文二(Linux)的钩子文件应该在/var/svn/hooks
文件夹内已经存在有一些.tmpl文件,这些只是一些模板(TeMPLate)或者说是示例文件。它们不会被执行。
先以linux为例,来讲讲如何构建一个同步的测试服务器127.0.0.2(在Ubuntu6.10,apache2.0.55,SVN1.3.1下调试通过。2007/1/18)
我们假设你已经建立好了一个apache+SVN的环境。

0.准备工作
为SVN同步测试服务器建立访问SVN版本的权限,请参考以前的文章
viewsourceprint?1

2sudohtpasswd2/etc/apache2/dav_svn.passwdserver

1.使用checkout建立一个工作复本
viewsourceprint?1

2cd/var/www

3sudomkdir/var/www/127.0.0.2#建立SVN同步测试服务器站点根目录

4sudochownwww-data.www-data127.0.0.2#更改用户所有者

5sudosuwww-data#切换到www-data,需要使用sudo,因为超级权限可以使用任何用户,而不需要密码,执行后会发现命令提示符可能会有变化

6svncheckouthttp://127.0.0.10/lab.luochunhui.com/trunk127.0.0.2#取出SVN上的文件,可能需要密码

7#请保证执行checkout语句的用户是www-data,否则在以后钩子调用update时会出现无法创建或修改文件的错误

8exit#退出www-data用户

说明:我们必须把/var/www/127.0.0.2目录的所有者设置成apache的运行者(www-data),他必须对文件夹具有完全的可读写操作权限。我使用
sudochownwww-datawww
sudosuwww-data
这样的方式来避免把/var/www/127.0.0.2目录设置成777的权限。
另外可以执行下面的代码实现相同的功能:
viewsourceprint?1

2cd/var/www

3sudomkdir/var/www/127.0.0.2#建立SVN同步测试服务器站点根目录

4sudosvncheckouthttp://127.0.0.10/lab.luochunhui.com/trunk127.0.0.2#取出SVN上的文件,可能需要密码

5sudochown-Rwww-data.www-data127.0.0.2/#把文件用户修改成apache的执行用户

之后使用
viewsourceprint?1

2ls-Al127.0.0.2

应该可以得到
drwxr-xr-x7www-datawww-data40962007-01-1710:21.svn
...一些其他的文件。创建SVN同步测试服务器时还要设置Apache。

2.设置apache,把你需要的域名指向这个文件夹。
viewsourceprint?1

2sudogedit/etc/apache2/sites-available/127.0.0.2

输入以下文字:
 

  1. 01viewsourceprint?01<BR> 
  2. 02<VIRTUALHOST127.0.0.2><BR> 
  3. 03ServerAdminrollenc@localhost.com<BR> 
  4. 04ServerNamelocalhost<BR> 
  5. 05DocumentRoot/var/www/127.0.0.2<BR> 
  6. 06<DIRECTORY/><BR> 
  7. 07OptionsFollowSymLinks<BR> 
  8. 08AllowOverrideNone<BR> 
  9. 09DIRECTORY><BR> 
  10. 10<DIRECTORY127.0.0.2wwwvar><BR> 
  11. 11OptionsIndexesFollowSymLinksMultiViews<BR> 
  12. 12AllowOverrideNone<BR> 
  13. 13Orderallow,deny<BR> 
  14. 14allowfromall<BR> 
  15. 15#Uncommentthisdirectiveisyouwanttoseeapache2's<BR> 
  16. 16#defaltstartpage(in/apache2-default)whenyougoto/<BR> 
  17. 17#RedirectMatch^/$/apache2-default/<BR> 
  18. 18DIRECTORY><BR> 
  19. 19<BR> 
  20. 20ErrorLog/var/log/apache2/127.0.0.2_error.log<BR> 
  21. 21<BR> 
  22. 22#Possiblevaluesinclude:debug,info,notice,warn,error,crit,<BR> 
  23. 23#alert,emerg.<BR> 
  24. 24LogLevelwarn<BR> 
  25. 25<BR> 
  26. 26CustomLog/var/log/apache2/127.0.0.2_access.logcombined<BR> 
  27. 27ServerSignatureOn<BR> 
  28. 28VIRTUALHOST><BR> 

启用他
viewsourceprint?1

2sudoln-s/etc/apache2/sites-available/127.0.0.2/etc/apache2/sites-enabled/127.0.0.2

重启apache。
viewsourceprint?1

2sudoapache2-krestart

在浏览器上使用http://127.0.0.2可以浏览到你SVN上***版本。请期待下节关于SVN同步测试服务器创建介绍。
 

【编辑推荐】

  1. 两种方法实现SVN搭建测试服务器
  2. SVN整合MyEclipse内幕全程报道
  3. SVN同步相关问题专家讲解
  4. 深入剖析 如何远程修改SVN密码
  5. 术语汇编 SVN代码库简介
责任编辑:佚名
相关推荐

2010-05-31 14:19:47

2010-05-24 09:43:28

搭建SVN服务器

2010-05-28 10:35:46

SVN搭建测试服务器

2010-05-19 17:06:33

Subversion服

2009-04-09 18:11:07

Nehalemintel服务器

2010-05-20 18:52:06

Eclipse使用SV

2010-05-31 10:09:32

2012-11-20 10:28:18

双十一淘宝京东

2014-08-06 11:25:00

LinuxSVN服务器

2019-01-10 11:12:15

Nginx服务器架构

2009-10-10 17:06:24

服务器测试方法

2009-10-19 10:26:39

2012-07-04 13:39:58

2010-05-25 14:02:54

Http访问SVN服务

2010-05-25 13:49:11

访问SVN服务器

2010-05-31 13:00:49

MyEclipse配置

2010-05-19 18:26:28

SVN服务器安装

2010-06-02 14:41:46

SVN建库

2009-02-13 11:06:00

时间同步服务器服务器

2010-05-25 09:32:04

搭建SVN服务器
点赞
收藏

51CTO技术栈公众号