Windows 7 开始为Mercurial编写钩子的最佳方式是什么?
我是Mercurial的新手,希望编写一些钩子来防止某些分支之间的合并。我正在寻找一种贯穿整个循环的教程 我已经看过了和这些,但我仍然觉得它令人困惑。比起阅读手册或类似内容,我更擅长通过教程/研讨会进行学习 我可以理解示例代码是如何工作的,但是如何让Mercurial识别函数呢 e、 g.) 我已经写了这篇文章,但我不明白如何让Mercurial在提交之前运行代码Windows 7 开始为Mercurial编写钩子的最佳方式是什么?,windows-7,mercurial,hook,Windows 7,Mercurial,Hook,我是Mercurial的新手,希望编写一些钩子来防止某些分支之间的合并。我正在寻找一种贯穿整个循环的教程 我已经看过了和这些,但我仍然觉得它令人困惑。比起阅读手册或类似内容,我更擅长通过教程/研讨会进行学习 我可以理解示例代码是如何工作的,但是如何让Mercurial识别函数呢 e、 g.) 我已经写了这篇文章,但我不明白如何让Mercurial在提交之前运行代码 def is_bad_branch_name(ui, repo, **kwargs): """ Checks tha
def is_bad_branch_name(ui, repo, **kwargs):
"""
Checks that a commit is always done on a named branch.
This function enforces Projectplace's branching convention.
@return: True if the branch name is invalid.
@returntype: Boolean
"""
branch = repo[None].branch()
branch_names = r'(TT|AZ)(-#)(\d)+(:)[\s\w]*'
acceptable_branch_names = re.compile(branch_names)
if not acceptable_branch_names.match(branch):
ui.warn('invalid branch name %r (use <TT|AZ>-#<number>: <description>)\n')
return True
return False
def是不良分支机构名称(ui、回购、**kwargs):
"""
检查是否始终在命名分支上执行提交。
此函数强制执行Projectplace的分支约定。
@返回:如果分支名称无效,则为True。
@返回类型:布尔型
"""
分支机构=回购[无]。分支机构()
分支机构名称=r'(TT | AZ)(-d)(+:)[\s\w]*'
可接受的分支名称=重新编译(分支名称)
如果不可接受\u分支\u名称。匹配(分支):
ui.warn('无效的分支名称%r(使用-#:)\n')
返回真值
返回错误
让我指出显而易见的原因,因为我是一个绝望的代表
“在BoS的书中
如果你想不出一个你想要的钩子,请问一个更具体的问题
钓得开心 我现在已经成功地编写并使用了钩子。我发现缺少在线文档,但这也可能是我的问题。我所做的是研究示例代码和一些试错编码,并在这里提出一些问题。:) 编辑 作为将来的参考,这是Mercurial在您的hgrc中需要在提交之前运行上述代码的那种代码。这是一个用于钩子和代码路径的部分
[hooks]
precommit.bad_branch_name = python:/path/to/hook/hook.py:is_bad_branch_name
对于要挂接的每个函数,都需要一行代码。“预提交”意味着钩子将在执行提交之前运行。这样,如果钩子返回True,提交将被中止。“bad_branch_name”只是一个标识符,您可以在那里键入任何内容。您是否已经开始尝试,还是仍在寻找最佳的切入方式?我已经编写了一些代码,但未能让Mercurial识别它。我会尽快看第10章,看看这是否有帮助。嗯,这似乎是MdaG提出的一个相当有效的问题。为什么这么否定?对不起,我是说我的答案是针对rw的,不是问题。虽然很高兴知道你已经解决了你的问题,但如果你能在这里发布一些你所做的事情,那就更好了。这样,当其他人有同样的问题,并最终来到这里,他们可能能够解决任何不适合他们的问题。