【问题标题】:TortoiseHg can't commit--"The system cannot find the file specified"TortoiseHg 无法提交--“系统找不到指定的文件”
【发布时间】:2010-07-03 17:48:53
【问题描述】:

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

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

"abort: None: 系统找不到 指定的文件”

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

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 被指定为三向合并工具和可视差异工具。我没有故意更改任何其他设置。

感谢您的帮助,请询问更多信息,我只是不知道在这种情况下该提供什么。

【问题讨论】:

  • 我遇到了同样的错误,我找不到解决方案。请给我们一个答案!
  • 什么版本的hg + windows,什么版本的python?如果不需要 python,则忽略后者。
  • TortoiseHg 是带有 Mercurial 1.6 的 1.1 版。我正在运行 Windows 7 64 位。
  • 我有 TortoiseHg 1.1,像 Champigny 一样的 Mercurial 1.6。运行 Windows XP SP2,32 位。
  • 31eee384:请通过他们的适当渠道联系 TortoiseHg 开发人员:bitbucket.org/tortoisehg/stable/issues 和 tortoisehg-discuss@lists.sourceforge.net。当您遇到工具问题时,礼貌地回信给开发人员并告知他们问题,而不是将其发布在某些第三方网站上。

标签: configuration mercurial tortoisehg mercurial-commit


【解决方案1】:

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

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

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

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

谢谢

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

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

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

hg showconfig --debug tortoisehg

如果它包含这样的内容:

mercurial.ini:15: tortoisehg.autoinc=None

那么tortoisehg 配置不正确。

我希望这可以解决 OP 和其他遇到此问题并试图解决问题的人的问题。

【讨论】:

  • 很抱歉花了这么长时间来回答(我已经开始从命令行使用 git)但我试过了。 (嘿,按 Enter 提交,并且不会换行。)这个解决方案对我不起作用。查看全局和存储库设置,指定的选项被列为“未指定”,提交时我仍然收到相同的消息。有趣的是,当我运行 hg showconfig --debug tortoisehg 时,它确实显示“tortoisehg.autoinc=None”。
  • @31eee384 嗯,听起来 hg 配置与 gui 不同步。也许您可以尝试从 hg 配置文件中手动删除它。无论如何,使用最适合你的东西:)
  • 我有同样的问题,并且在任何 hg 属性文件、系统或用户之一中都没有提到 tortoisehg.autoinc。所以,恐怕你还没有解决这个问题。
【解决方案2】:

试试这个:

  1. 移除 TortoiseHG
  2. 重启系统(基本上是为了确保没有来自乌龟的进程,比如文件监控,可以对文件加锁)
  3. 安装命令行 hg
  4. 做常规的hg commit -m "yourmessage"

如果这可行,则很有可能是 TortoiseHg 的监控工具锁定了某个文件(系统托盘小程序)。

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

最后,可能发生这种情况的另一个原因是:有人在 .hg 目录中的 repo 文件中胡闹……但似乎并非如此

【讨论】:

  • 我目前无法重新启动,但即使安装了 TortoiseHg hg commit 也可以工作。是的,正如您所假设的,我没有修改 .hg 目录中的任何内容,并且没有其他人可以访问计算机。我将卸载 TortoiseHg 并在我重新启动时留下另一条评论,以防它有帮助。另外,我不知道您的意思是“其他人在做什么”,但是我尝试将所有编辑器设置都设置为未指定,但仍然以同样的方式失败。
  • 好吧,在您发布此答案之前我已经尝试过了,它确实有效!但这并不能真正解决“TortoiseHg 问题”。我还尝试创建一个干净的存储库,然后提取数据,更改文件并提交,问题仍然存在......好吧,我想我会用老式的方式(命令行)!
  • 您也可以尝试在没有监视更改和显示叠加图标的工具的情况下使用乌龟。不是乌龟本身,而是它自带的组件(也可以怀疑是 diff 工具)
  • @pierre 当您说您尝试过并且有效时,您到底尝试了什么?您是指卸载-重新安装-重新启动吗?还是您的意思是 cli 的提交有效?
  • @nick 关于这个问题,您还有其他建议吗? Tortoisehg 的默认软件包已经带有 hg 的 cli 工具。在使用 GUI 时,没有任何建议对我解决提交问题有效。如果这个基本功能不起作用,我想这是一个严重的问题,但似乎大多数人都没有遇到这个问题。我也在 tortoisehg 邮件列表上发帖,希望他们能提供一些可行的建议。
猜你喜欢
  • 1970-01-01
  • 2017-04-12
  • 2014-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-21
  • 2023-03-17
相关资源
最近更新 更多