TortoiseHg无法提交 - “系统找不到指定的文件”

时间:2010-07-03 17:48:54

标签: configuration mercurial tortoisehg mercurial-commit

我刚拿起TortoiseHg用于Windows上的分布式源代码控制并将其安装在我的C盘上。然后我创建了一个存储库(位于D:\ projects)。

当我尝试提交更改时,它会给我错误

  

“abort:None:系统无法找到   指定文件“

在一个名为“提交”的新窗口中。这会导致提交中止。它没有指定任何文件,当我运行hg --traceback commit -m'Fessage'时,它将此作为输出:

Traceback (most recent call last):
  File "mercurial\dispatch.pyo", line 54, in _runcatch
  File "mercurial\dispatch.pyo", line 483, in _dispatch
  File "mercurial\dispatch.pyo", line 351, in runcommand
  File "mercurial\dispatch.pyo", line 534, in _runcommand
  File "mercurial\dispatch.pyo", line 488, in checkargs
  File "mercurial\dispatch.pyo", line 481, in <lambda>
  File "mercurial\util.pyo", line 420, in check
  File "mercurial\commands.pyo", line 762, in commit
  File "mercurial\cmdutil.pyo", line 1202, in commit
  File "mercurial\commands.pyo", line 757, in commitfunc
  File "mercurial\localrepo.pyo", line 816, in commit
  File "mercurial\localrepo.pyo", line 1053, in status
  File "mercurial\dirstate.pyo", line 629, in status
  File "mercurial\dirstate.pyo", line 540, in walk
  File "mercurial\localrepo.pyo", line 796, in fail
Abort: Adding: The system cannot find the file specified
abort: Adding: The system cannot find the file specified

我不知道我还能提供什么作为调试信息,没有任何使用该程序的经验。

我已将TortoiseHg配置为全局用户名和存储库。此外,kdiff3被指定为三向合并工具和视觉差异工具。我没有故意改变任何其他设置。

感谢您的帮助,请索取更多信息,我不知道在这种情况下应该给予什么。

2 个答案:

答案 0 :(得分:2)

我已经熟悉了Hg并尝试了Tortoise-Hg,我正在遇到与OP相同的问题。我克隆了一个存储库 来自其中一个开源项目并对源进行了一些更改。 但是,当我尝试提交时,我从提交中获得了以下消息 对话窗口:

abort:无:系统找不到指定的文件

下拉到命令行并使用hg commit -m“message”有效。我 在Windows 7 64位下使用它并尝试了两个版本TortoiseHg 1.1.5和 截至本文的最新1.1.6.1(64位版本)。

知道问题是什么吗?您可以想象,这是一个主要问题,因为我甚至无法对版本控制系统执行最基本的操作之一,无需下拉到CLI。这有什么问题?

由于

更新:我已经解决了这个问题!在TortoiseHg邮件列表上进行了一些合作之后,我发现了这个错误的根本原因。发生此错误是因为每当tortoisehg尝试提交它时,会在该提交命令行的末尾添加一个额外的'none'参数。

如果您已将存储库设置 - >提交 - >自动提交列表设置为“无”,则会发生这种情况。修复很简单 - 确保自动提交列表和自动排除列表都设置为&lt;未指定的&gt;。检查您的全局设置,并确保这两个字段的设置方式相同。

此外,要查看您的自动提交列表和自动排除列表是否设置正确,请键入

hg showconfig --debug tortoisehg

如果它包含一个符合此效果的行:

mercurial.ini:15: tortoisehg.autoinc=None

然后没有正确配置tortoisehg。

我希望这可以解决OP和其他正在解决这个问题的问题,并试图修复它们。

答案 1 :(得分:1)

试试这个:

  1. 删除TortoiseHG
  2. 重启系统(基本上是为了确保没有来自龟的进程,例如文件监控,可以锁定文件)
  3. Intall命令行hg
  4. 执行常规hg commit -m "yourmessage"
  5. 如果这样可行,TortoiseHg的监控工具很可能会锁定某个文件(系统托盘小程序)。

    也可能是其他人正在做的事情(而不是TortoiseHg),例如编辑?差异工具?等?

    最后,另一个可能发生这种情况的原因是:有人被.hg目录中的repo文件骗了......虽然似乎不是这样的