注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

kangzye的博客

加Q群25382780切磋java,加19360923群研究JavaScript

 
 
 

日志

 
 

CollabNet Subversion + checkstyle  

2012-03-20 11:49:08|  分类: svn |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
作为一个管理者,有时候搭配一些环境也是必要的能力。
collabnet 让svn服务器端配置起来的确容易,不过checkstyle与其整合时整了我一天。。
collabnet subversion这玩意就类似于myPhpAdmin,把apache 、php 、mysql集成打包成安装文件。而collabnet 这玩意就是集成了apache 以及svn,并附带了web管理界面。可以使用web方式来配置管理仓库及用户等。在客户端使用时不是使用svn://协议,而是http://。
备忘。
先提供使用到的资源的地址:
collabnet subversion :http://www.collab.net/downloads/subversion (我下载的版本是:CollabNet Subversion Edge 2.3.0 (for Windows 64 bit),因为我的服务器是64位的)
checkstyle:http://checkstyle.sourceforge.net/ (下载zip解压版本)
svnchecker:http://svnchecker.tigris.org/servlets/ProjectDocumentList?folderID=9752&expandFolder=9752&folderID=0
1、运行collabnet 的安装文件安装完成(例:安装在D:\csvn)。安装好后重启一下服务器。
2、然后运行ie打开管理网址:http://localhost:3343/svn即刻进入管理界面。账号密码默认是:admin/admin
3、管理界面中有许多管理界面,首先在“状态”选项卡中把服务开启如果没有开启的话。
4、现在创建一个仓库,我这取名为 myReps 。打开版本库,看着页面上的提示新建一个即可。
5、然后创建用户,如 kangzye ,授予的角色默认不动即可。这个账号就是我们在客户端要输入的身份验证信息。
6、配置权限,默认情况下是所有人都可以对所有仓库具备rw权限(及读写),如果需要更改,打开版本库,打开“访问规则“,编辑”版本库访问规则“,如:
[groups] developers = kangzye,user1,user2 [/] * = admin = rw [projects:/] @developers = rw
如上配置,[groups]下面的内容代表定义了用户组,后面可以给用户组分配权限。
[/]代表对所有仓库的权限 *=  代表所有人无任何权利,等后面再一步一步对人逐个设置权限。admin=rw 表示admin用户具备/下的rw权限
[projects:/]表示仓库”projects“ 的访问控制,@developers = rw 表示该用户组具备该仓库的 rw 权限。如果需要对仓库下的某个文件
夹做权限控制可这样做:
[projects:/src/main/]
@developers = r
这样/src/main/ 这个文件夹下仅有读权限。

到此,仓库是配置好了并且可以使用了。刚才建立的仓库位置在 d:/csvn/data/repositories 下有个 myReps文件夹。此文件夹下又包含
一些文件和文件夹,其中有个 hooks (钩子)这个我们后面做checkstyle要用到。
在客户端使用: http://ip/svn/myReps 即刻获得仓库列表。

下面配置 checkstyle
先把checkstyle 以及 svnchecker 下载下来分别解压成 checkstyle5.5 以及 svnchecker0.3 ,将两个文件夹放置在
d:\svn\checkstyle\下。
修改一下svncheckermodules\transaction.py代码

def __executeSVN(self, command, arg = "", split=False):

        command = "svnlook --%s %s %s %s %s" % (self.type, self.txnName, command, self.reposPath, arg)

        command = command.replace('svnlook','%svnlook%'); //增加

7、在刚说到的hooks 文件夹下新建 svncheckerconfig.ini 文件,内容如下:
[Default]

#This property tells Subversionchecker about all checks
#(UnitTests, AccessRights, XMLValidator etc) it should execute.
#Separated with comma (",")
Main.PreCommitChecks=Checkstyle

#Path of java executable to run Checkstyle command
Checkstyle.Java=java

#Classpath for executing Checkstyle rules
Checkstyle.Classpath=d:\csvn\checkstyle\checkstyle5.5\checkstyle-5.5-all.jar

#Configuration file for Checkstyle to run its rules.
Checkstyle.ConfigFile=
d:\csvn\checkstyle\checkstyle_springside.xml

#In case of failures, where should Subversionchecker redirect the errors
Checkstyle.FailureHandlers=Console

红色部分请注意各自的路径要正确。
Checkstyle.ConfigFile 配置的是checkstyle 的规则文件。这个规则文件的编写请另行百度。
8、修改hooks文件夹下的 pre-commint.tmpl 文件夹,把文件名修改为 pre-commit.bat ,修改内容如下:

set python="D:\csvn\Python25\python.exe"
set svnchecker="D:\csvn\checkstyle\svnchecker-0.3"
set svnlook="D:\csvn\bin\svnlook.exe"

setlocal
set REPOS=%1
set TXN=%2

rem checkstyle hooks
%python% %svnchecker%\Main.py PreCommit %REPOS% %TXN% || exit 1


rem Make sure that the log message contains some text.
set SVNLOOK=D:\csvn\bin\svnlook.exe
%SVNLOOK% log -t "%TXN%" "%REPOS%" | findstr "....." > null

if %errorlevel% gtr 0 goto err
exit 0
:err
echo Empty message not allowed. Please write some message at least 5 characters.Commit refuse! 1>&2

exit 2

把原来的内容都删掉不要(原先内容居然是linux的。。。)
如此,checkstyle就已经配置完成。
  评论这张
 
阅读(2659)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017