为什么在 Mercurial 的 Strip 上执行 preoutgoing hook?

Why is preoutgoing hook executed on Strip in Mercurial?

有人可以解释为什么我的 preoutgoing 钩子在执行 hg strip (Mercurial Strip) 时被执行吗?是否有机会禁用该行为?

我希望在执行 hg push 时挂钩到 运行。

为了避免执行我的钩子代码,我在钩子的开头添加了以下代码行:

if "%HG_SOURCE%" == "strip" (
    exit /b 0
)

outgoingpreoutgoing 都将提供一个指示源操作的参数。在Python中,这个参数叫做source,否则可以访问环境变量HG_SOURCE:

  • hg pushHG_SOURCEpush
  • hg stripHG_SOURCEstrip

基于该观察,您可以简单地评估初始命令。

来源: