9

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

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

“中止:无:系统找不到指定的文件”

在一个名为“提交”的新窗口中。这会导致提交中止。它没有指定任何文件,当我运行 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 被指定为三向合并工具和可视差异工具。我没有故意更改任何其他设置。

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

4

2 回答 2

2

我正在熟悉 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 和其他遇到此问题并试图解决此问题的人的问题。

于 2010-11-21T02:45:21.213 回答
1

尝试这个:

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

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

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

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

于 2010-07-16T01:43:13.223 回答