使用JScript设置SVN客户端hook

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

        关于什么叫SVN hook,请参考这篇文章:从传统的 关于SVNHooks(钩子)的使用,这里不作详述。

 

设置SVN客户端hook的标准做法如下:

1.      选择“Settings”菜单项,如下图:


2.      在Hook Script中填写Hook类型及相关的脚本路径及命名行:


 

         现在我有这样一个需求:当更新RunTimeLib目录时把该目录下的dll文件都拷贝到输出目录下。我已经完成了第一步,写了一个Jscript来实现这个复制操作。

 

第二步当然可以用上面的介绍设置这个hook。但是我比较讨厌图形化的操作,我不想每个加入进来的开发人员都进行这个略带麻烦的设置。我希望使用bat文件或Jscript来一步完成hook设置。


    经过观察,我发现所有的hook信息都保存在注册表HKEY_CURRENT_USER\Software\TortoiseSVN\hooks下,也就是说我只需用脚本把这个注册表项填上hook命名信息就行。然后我写了下面的设置hook的Jscript,代码如下:


 

var WSShell = WScript.CreateObject("WScript.Shell");
var strValue;
var num = WScript.ScriptFullName.lastIndexOf("\\");
// 获取当前路径
var strCurPath = WScript.ScriptFullName.substr(0, num);
var FileSys = WScript.CreateObject("Scripting.FileSystemObject");

try {
    var strVC9Key = "HKEY_CURRENT_USER\\SOFTWARE\\TortoiseSVN\\hooks";
    strValue = WSShell.RegRead(strVC9Key);
}
catch (e) 
{
}
var strAdd = "";
var strDir;
strDir = strCurPath+"\\RunTimeLib";
if (FileSys.FolderExists(strDir)) {
   strAdd =strAdd+ "post_update_hook\n"+strDir+"\nWScript "+strCurPath+"\\UpdateSysDll.js\nfalse\nshow\n";
// 写入注册表
	WSShell.RegWrite("HKEY_CURRENT_USER\\SOFTWARE\\TortoiseSVN\\", 1, "REG_BINARY");
	WSShell.RegWrite("HKEY_CURRENT_USER\\SOFTWARE\\TortoiseSVN\\hooks", strAdd, "REG_SZ");
}
else {
    WScript.Echo("设置hook失败!");  
}

     

     经过测试,是可以设置成功的。





转载于:https://www.cnblogs.com/lanzhi/archive/2013/06/07/6470567.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值