如何在 Windows 上编写 mercurial hooks?

How to write mercurial hooks on windows?

我想在我的存储库中添加一个挂钩。我不知道我需要把挂钩文件放在哪里。 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 中编写挂钩?

根据 Hooks 文档,hook 必须在给定的环境程序中可执行,它没有预定义的位置,但必须由 OS 找到。

因此:

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

因此,

precommit.test = z:\precommit.bat 在 hgrc

@echo off

echo Hello World 在 z:\precommit.bat

我有提交尝试

>hg commit -m "Edits"
Hello World