[原创] 使用CaptainHook实现的svn hooks功能下载下来,修改了其中的一些代码,暂时实现了“强制写日志”,“提交发送邮件”,“允许修改自己提交的日志”的三个功能。 现在讲讲如何使用: 1. 把压缩包中CaptainHook.exe,CaptainHook.exe.config,CaptainHook.Interfaces.dll,CaptainHook.SubversionWrapper.dll和plugin中所有文件复制到某文件夹下,如:D:\CaptainHook。 把hooks_bat文件夹下的三个bat文件复制到版本库的hooks文件夹下。 2. 修改三个bat文件,把其中的D:\CaptainHook\CaptainHookBinaries\CaptainHook.exe修改成D:\CaptainHook\CaptainHook.exe 3. 配置CaptainHook,修改CaptainHook.exe.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="captionhook" type="CaptainHook.Configuration.CaptionHookConfigurationHanlder, CaptainHook"/> </configSections> <captionhook> <plugins> <plugin name="RequireLogMessage" path="D:\CaptainHook\plugins\RequireLogMessage.Plugin.dll" enable="false"/> <plugin name="PostCommitEmail" path="D:\CaptainHook\plugins\PostCommitEmail.Plugin.dll" enable="false"/> <plugin name="EditLogMessage" path="D:\CaptainHook\plugins\EditLogMessage.Plugin.dll" enable="true"/> </plugins> <svncommands> <svncommand command="svn" path="svn.exe" /> <svncommand command="svnlook" path="svnlook.exe" /> </svncommands> </captionhook> </configuration> 修改三个plugin的path,enable:true/false,表明是否启用该plugin。 修改二个svncommand的path值,修改成正确的值,如果配过svn的路径到环境变量path中,则不需要改动。 4. 配置“强制写日志”功能 打开plugin文件夹下的RequireLogMessage.Plugin.cfg.xml <?xml version="1.0" encoding="utf-8" ?> <config> <lesslogsize value="10" /> <errormessage value="A Log Message is required!" /> </config> lesslogsize 值表明提交日志的长度最小值 errormessage 值表明提交日志为空或不大于等于最小字符数时的错误信息,请注意不能含有中文字符,否则TortoiseSVN会报错。 5. 配置“提交发送邮件”功能 打开plugin文件夹下的RequireLogMessage.Plugin.cfg.xml <?xml version="1.0" encoding="utf-8" ?> <config> <smtp> <host value="mail.svn.com" /> <port value="25" /> <auth value="true" /> <user value="user" /> <password value="password" /> </smtp> <mail> <frommail name="admin" address="admin@svn.com" /> <tomails> <tomail name="admin" address="admin@svn.com" /> </tomails> <ccmails> <ccmail name="" address="" /> </ccmails> <bccmails> <bccmail name="" address="" /> </bccmails> <subject value="svn commit" /> <bodytemplate value="mailtemplate.vm" /> </mail> </config> 配置正确的host,port值,如果邮件服务器需要密码验证,则auth为true,并且配置正确的user和password值,否则为false。 mail中各个节点值,很明确了,就不详细说了 6. 配置“允许修改自己提交的日志”功能 打开plugin文件夹下的EditLogMessage.Plugin.cfg.xml <?xml version="1.0" encoding="utf-8" ?> <config> <editallauthors> <author name="admin" /> </editallauthors> <lesseditlogsize value="10" /> </config> <author name="admin" />表明除了自己外,用户admin可以修改任意用户提交的日志, 如果有多个这样能修改任意用户提交日志的用户,则请配置多个author节点 <lesseditlogsize value="10" />表明修改后的日志长度的最小值。 通过以上的配置,就可以使用“强制写日志”,“提交发送邮件”,“允许修改自己提交的日志”的三个功能,enjoy it!!! |
|