mercurial预推hook参数,获取远程回购路径



我正在尝试实现一个mercurial预推挂钩,它检查目标回购路径并通过ssh-add添加适当的id。不太好的解决方案是检查命令行参数,如果路径不是强制的,那么从hgrc文件中读取默认路径,但有没有更干净的方法来获取远程路径?

我打印了传递到hook方法中的kwargs,但似乎没有包含我需要的内容。我也试过在谷歌上搜索,但可用的信息几乎没有,这看起来有点像黑色艺术。因此,任何提及像样的文档和/或示例的内容都将不胜感激。

干杯,

hg help config中,似乎可以使用"prechangegroup"挂钩和HG_URL环境变量:

"prechangegroup"
  Run before a changegroup is added via push, pull or unbundle. Exit
  status 0 allows the changegroup to proceed. Non-zero status will cause
  the push, pull or unbundle to fail. URL from which changes will come is
  in "$HG_URL".

您应该能够使用"pre-changegroup"one_answers"pre-push"挂钩(注意破折号)。它将命令行参数提供为$HG_ARGS。

如果$HG_ARGS是一个有效的url,您可以使用该url。如果没有提供任何内容,请使用作为钩子的关键字参数提供的ui对象。

使用以下内容从配置中检索默认路径:ui.config("路径"、"默认")

由于您也可以在配置文件中写入其他命名的urls/路径,因此如果$HG_ARGS不包含ui.config路径对象的有效url或关键字,您也应该能够验证该url

最新更新