1

这个请求的标题已经说明了一切。我的 .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 朋友)结合起来,所以我总是必须在提交之前运行 sudo。

浏览 SO 并在网上搜索,我发现此错误是由于代码中尾随空格的钩子造成的(比较Mercurial 的这一部分:权威指南以及钩子上的这个 SO 条目)。奇怪的是,我没有在任何地方定义这个钩子,所以我也不知道如何删除它。

任何帮助解决这个问题将不胜感激。多谢你们。

==================================================== ===========================

编辑:结合平滑雷鬼的建议,我将 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 是一个不相关的问题,对于这个特定问题可以忽略。

4

1 回答 1

2

你可以debug = True[ui]你的.hgrc文件中添加吗?这将为您提供更多输出,这可能会为您提供有关此钩子位置的一些见解

于 2013-03-24T00:10:32.387 回答