Hudson之Viewsvn部署
关键词:Hudson, ViewSVN
作者:BIce 创建时间:2011-09-26 11:12:00
1. ViewSVN是什么?
ViewSVN提供一个简单,易于架设的Web界面来浏览Subversion(SVN)版本控制库。你可以浏览目录,提交日记,查看文件和请求文件修订版之间的不同之处。它的最终实现方式是通过调用底层的SVN命令来完成信息的获取,然后将信息以Web的方式返回给用户。
2. Hudson的ViewSVN支持
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的目录下,然后修改Apache的Rewrite 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