是否有一种简单的方法可以让Mercurial不接受提交代码段?

时间:2015-12-29 20:39:49

标签: mercurial

我对一个文件进行了更改,我明确地从不想提交回购。 (在这种情况下,它是一个需要通过修复不相关的代码库来解决的错误。)

有没有办法标记更改,以便在我尝试提交时Hg会出错?理想情况下,它会在注释中内联,这样我就可以选择不提交代码段(使用TortoiseHg)并且仍然可以提交其他部分。

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

2 个答案:

答案 0 :(得分:1)

编写钩子的另一种方法是提交更改,并将其移至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

答案 1 :(得分:0)

正如您自己建议的那样:解决方案是编写一个客户端提交钩子,当您要跳过提交的代​​码是提交的一部分时,该钩子使用正则表达式解析文件并输出错误。

找到一个检查错误文件扩展名和提交消息的简单钩子for instance here - 应该很容易扩展到检查特定模式的某个文件。