Mercurial - 如何在Windows上配置多行挂钩

时间:2015-03-04 18:09:18

标签: powershell mercurial atlassian-sourcetree mercurial-hook hgrc

运行Windows 7,在我的.hgrc文件中配置提交挂钩。

钩子调用外部PowerShell脚本并传递一些参数。当我将所有参数放在一个长行上时,脚本会很好地接收它们。但是,当我尝试将每个参数放在自己的行上时,钩子无法确定它们都是对我的外部脚本的同一调用的一部分。

[钩]

commit.working_one_liner = PowerShell.exe -ExecutionPolicy Bypass -File .\MyScript.ps1 -hg %HG% -updatedToChangeset %HG_NODE% -dbName 'Test'

commit.multi_line_hook_not_working = PowerShell.exe 
    -ExecutionPolicy Bypass
    -File .\MyScript.ps1
    -hg %HG%
    -updatedToChangeset %HG_NODE%
    -dbName 'Test'

根据Hg documentation,我应该可以这样做:

"配置文件由部分组成,由[section]标题引导,后跟name = value条目(有时称为配置键):

[spam]
eggs=ham
green=
   eggs

每行包含一个条目。如果后面的行是缩进的,则将它们视为该条目的延续。从值中删除前导空格。空行被跳过。以#或;开头的行被忽略,可用于提供评论。"

尽管缩进,但multi_line_hook似乎忽略了第一行之后的所有内容。我在每一行后尝试了各种转义字符(`,^,\等)。我在这里缺少什么想法?

1 个答案:

答案 0 :(得分:0)

文档中的示例仅适用于第一行,而不适用于其他行。

我目前无法访问Windows,但在linux上我需要使用反斜杠:



[hooks]
commit.working = echo \
    test