有没有一种简单的方法可以防止Mercurial接受提交的代码段?

有没有一种简单的方法可以防止Mercurial接受提交的代码段?,mercurial,Mercurial,我对一个文件进行了更改,但我明确不想提交到repo。(在本例中,这是一个围绕需要通过修复无关代码库来解决的bug进行的黑客攻击。) 是否有一种方法来标记更改,以便在我尝试提交更改时,Hg会出错?理想情况下,它应该是注释中的内联内容,这样我就可以选择不提交该段代码(使用TortoiseHg),而仍然能够提交其他部分 目前,我只是用一个讨厌的评论块来标记更改,但是,如果我能告诉repo这是一个危险的代码,那将是一个很好的安全措施。正如你自己所建议的:解决方案是编写一个客户端提交钩子,它使用正则表达式

我对一个文件进行了更改,但我明确不想提交到repo。(在本例中,这是一个围绕需要通过修复无关代码库来解决的bug进行的黑客攻击。)

是否有一种方法来标记更改,以便在我尝试提交更改时,Hg会出错?理想情况下,它应该是注释中的内联内容,这样我就可以选择不提交该段代码(使用TortoiseHg),而仍然能够提交其他部分


目前,我只是用一个讨厌的评论块来标记更改,但是,如果我能告诉repo这是一个危险的代码,那将是一个很好的安全措施。

正如你自己所建议的:解决方案是编写一个客户端提交钩子,它使用正则表达式解析文件,当你想跳过提交的代码是提交的一部分时,就会出错


找到了一个简单的钩子,用于检查错误的文件扩展名和提交消息—应该可以很容易地扩展到检查特定文件的特定模式。

编写钩子的另一种方法是提交更改,并将其移动到
secret
阶段。这将防止将其推送到另一个存储库。它还允许您通过对秘密提交重定基来轻松地将更改应用于任何更改集之上

使用书签或命名分支使变更集易于选择

hg branch externalbugworkaround
hg commit -m "HACK - workaround external bug. DO NOT PUSH"
hg phase -s -f externalbugworkaround
然后移动它

hg rebase --keepbranches -d rev -r externalbugworkaround

不,mercurial没有现成的功能。我希望如此。我希望有一个客户端提交钩子或类似的东西。