【问题标题】:Mercurial - How to configure multiline hook on WindowsMercurial - 如何在 Windows 上配置多行挂钩
【发布时间】:2015-03-04 18:09:18
【问题描述】:

运行 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

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

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

【问题讨论】:

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


    【解决方案1】:

    文档中的示例仅适用于后面的第一行,而不适用于其余部分。

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

    [hooks]
    commit.working = echo \
        test   

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多