这个请求的标题几乎都说明了。我的.hgrc文件中没有定义钩子,但是我在运行hg commit时得到了这个回滚消息:
transaction abort!
rollback completed
abort: pretxncommit.whitespace hook exited with status 1
我的hgrc文件如下所示:
[paths]
default = 'the_address'
[ui]
username = 'my name and email address'
verbose = True
[extensions]
mq =
[diff]
git = 1
unified = 8
以防万一重要。我在Ubuntu 12.04上使用Mercurial,我正在尝试将它与在/ opt /目录中使用XAMPP安装(Apache friends)结合起来,所以我总是必须在执行提交之前运行sudo。
浏览SO并在网上搜索,我发现此错误是由于关于代码中尾随空格的钩子(比较this part of Mercurial: The definitive guide和this SO entry on hooks)。奇怪的是,我没有在任何地方定义这个钩子,所以我也不知道如何删除它。
任何帮助整理这个将不胜感激。谢谢你们。
=============================================== =============================
编辑:结合雷鬼的建议,我把hgrc文件放在主文件夹和根文件夹中,我调整了etc / mercurial中的hgrc文件,以找出解决这个问题的方法。我不确定,debug = True应该提供多少信息,但我没有特别多。在提交消息的开头,我现在看到以下内容:
could not import hgext.hgext.mq (No module named hgext.mq): trying hgext.mq
could not import hgext.hgext.transplant (No module named hgext.transplant): trying hgext.transplant
所以,这意味着,它找不到这两个文件,但为什么呢?
再次感谢您的帮助。
EDIT2:请注意,第一个EDIT是一个无关的问题,对于这个特定问题可以忽略。
答案 0 :(得分:2)
您可以在debug = True
文件的[ui]
下添加.hgrc
吗?这将为您提供更多输出,这可能会提供一些洞察这个钩子的位置