分享

使用CaptainHook实现的svn hooks功能 - Windows下Subversion安装使用 - SVN中文论坛 - Powered by Discuz!

 sofes 2011-01-28

[原创] 使用CaptainHook实现的svn hooks功能

前几天google,发现了一个.net的svn hooks脚本的类库,主页:captainhook

下载下来,修改了其中的一些代码,暂时实现了“强制写日志”,“提交发送邮件”,“允许修改自己提交的日志”的三个功能。

现在讲讲如何使用:

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!!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多