如何在windows上写mercurial hooks?

时间:2015-01-07 11:23:41

标签: mercurial

我想在我的存储库中添加一个钩子。我无法解决我需要放置钩子文件的位置。 hgrc文件如下:

[hooks]
precommit.test =  precommithook

位置为C:\ Code \ RepoTest.hg \ hgrc

挂钩文件是:

echo "hello world"

位置为C:\ Code \ RepoTest.hg \ precommithook

当我跑步时

  

hg commit -m" test"

从命令行我得到

running hook precommit.test: precommithook
'precommithook' is not recognized as an internal or external command,
operable program or batch file.
abort: precommit.test hook exited with status 1

我尝试了各种途径,但没有任何作用。

我搜索的关于Mercurial钩子的大部分例子都是基于Unix的。

是否可以在PowerShell中编写钩子?

1 个答案:

答案 0 :(得分:2)

根据Hooks doc,钩子必须在给定的环境程序中可执行,它没有预先定位的位置,但必须由OS找到。

因此:

  • 对于纯Windows,必须将hook命名为precommithook.bat
  • 必须将其放入$ PATH中的dir或钩子定义中使用的完整路径

结果,

hgrc中的

precommit.test = z:\precommit.bat

@echo off

z:\ precommit.bat

中的

echo Hello World

我有提交尝试

>hg commit -m "Edits"
Hello World