Hudson之Viewsvn部署

关键词:Hudson, ViewSVN
作者:BIce 创建时间:2011-09-26 11:12:00

1. ViewSVN是什么?

ViewSVN提供一个简单,易于架设的Web界面来浏览Subversion(SVN)版本控制库。你可以浏览目录,提交日记,查看文件和请求文件修订版之间的不同之处。它的最终实现方式是通过调用底层的SVN命令来完成信息的获取,然后将信息以Web的方式返回给用户。

2. HudsonViewSVN支持

Hudson作为成熟的CI环境,查看每次CheckIn的变更集是日常的工作,Hudson默认查看变更集的方式只能查看本次的文件差别,不能查看具体的文件修改内容。但是Hudson自带的ViewSVN插件可以使Hudson比较方便的使用ViewSVN的功能。

3. 使用ViewSVN需要做的工作

 

i. ViewSVN作为一个单独的应用,使用它首先需要将其作为一个Web项目部署在某台服务器上,目前我们将ViewSVN部署在185机器上

(/home/work/local/apache/htdocs/viewsvn),访问方式为:

http://xxx:8080/viewsvn/index/ ,ViewSVN的部署很简单,只需要将其发布代码部署到Apache的目录下,然后修改ApacheRewrite Rule将发送到ViewSVN的请求指向index.php页面即可。

 

ii. 搭建好ViewSVN服务器后,可在Hudson界面中进入项目配置页面,在Source Control Management中的Repository browser中将原始的Auto修改为ViewSVN,如图

并将URL指向配置的ViewSVN主机

http://xxx:8080/viewsvn/index/?project=dr-sep_quick,其中project=XXX为配置的项目名称,用来让ViewSVN区分不同项目。

经过这样的配置之后,在Hudson中再次查看变更集的时候就会出现如下界面:

在不同的版本之间,出现ViewSVN的按钮

点击进去具体的变更集编号:如399的话会出现

可以不仅看到变更的文件,还可以通过diff的方式查看具体文件的内容变化。

iii. 经过刚才的配置后,其实还是不能正常使用ViewSVN,因为ViewSVN的服务器还没有保存关于你项目的信息,所以还无法正常检索SVN资源。

需要做的有:

a) ViewSVN提供你的项目名称(dr-sep_quick);

b) 提供项目的SVN的目录地址(https://svn.xxx.com/XXX/yourProjectName )

c) (可以提供SVN用户名、密码,但建议不提供,在每次查看时根据提升输入即可)

iv. ViewSVN存储项目信息的位置

目前,我们的项目信息(名称,SVN Root)等都存在ViewSVN的文件include/config.php中,形式如下,项目的ViewSVN配置在此进行:

$config['projects'] = array(

    'ProjectA' => array(

        'description' => 'A Project',

        'root'=>'https://xxx.com/app/XXX',

        'username'=>'userName',  ////非必需的

        'password'=>'passWd' ////非必需的

        ),

ProjectB=>array(

'description' => 'B Project',

         'root'=>'https://xxx.com/app/XXX',

)

);

v. 目前如果在include/config.php未设置用户名密码的话,当在使用ViewSVN的时候,会弹出一个对话框:要求输入可以读取该项目的用户名、密码。在输入之后,系统不会保存你的密码,并默认其为正确的。

目前的密码策略比较简单,以浏览器的用户验证机制来实现,在输入密码错误导致无法访问ViewSVN的情况,请重启浏览器重新输入正确的密码即可,如果有需要的话后续可以增加新的密码机制来保证安全。

 

 

部署:

Httpd.conf 修改:

        RewriteRule ^/viewsvn/index/(.*)/styles/(.*)$ /viewsvn/styles/$2

        RewriteRule ^/viewsvn/index/(.*)/images/(.*)$ /viewsvn/images/$2

        RewriteRule ^/viewsvn/index/(.*)/scripts/(.*)$ /viewsvn/scripts/$2

RewriteRule ^/viewsvn/index/(.*)$ /viewsvn/index.php

 

留言功能已取消,如需沟通,请邮件联系博主sunswk@sina.com,谢谢:)