【问题标题】:Hg TortoiseHg commit error on Windows 7Windows 7 上的 Hg TortoiseHg 提交错误
【发布时间】:2012-02-10 00:05:08
【问题描述】:

我通过 TortoiseHg 2.1.3 版克隆了一个新的存储库。然后做一些改变。当我提交时,我会收到如下消息。

我的桌面驱动器映射通过 Samba 连接到 Linux 服务器。

如果有人可以提供帮助,我将不胜感激。

% hg commit --repository V:\htdocs\critical\mysite2 --verbose --user MyUser --message=testing Mercuial  V:\htdocs\critical\mysite2/application/controllers/package.php
smartdox/application/controllers/package.php
transaction abort!
rollback completed
abort: The process cannot access the file because it is being used by another process
[command returned code 255 Fri Jan 13 14:30:17 2012]
mysite2% 

【问题讨论】:

  • 您是否尝试将存储库克隆到 Windows 7 上的本地驱动器,提交它然后推送到 Linux“驱动器”?我在以 Windows 7 和 Ubuntu 11.10 作为主机(共享文件夹,而不是 Samba)的 VirtualBox 上使用此方案,并且效果很好。

标签: mercurial commit tortoisehg


【解决方案1】:

为我更改设置:

Global Settings -> TortoiseHg -> Monitor Repo Changes

localonly

帮助。

官方bug跟踪器中的长讨论:https://bitbucket.org/tortoisehg/thg/issue/889/

【讨论】:

  • 谢谢,这正是我解决(同样的)问题所需要的!
【解决方案2】:

我也遇到过同样的问题,但我注意到“偶尔”我能够提交更改。我认为“另一个进程”是服务器上的东西。

当我提交失败时,hg 会给出错误提示(除其他外)“事务中止!回滚失败 - 请运行 hg recover”。

如果我运行 hg recover,有时也会失败(被另一个进程使用)。如果我等待一两分钟,然后重试恢复,通常会成功。

一旦恢复成功,如果我再等一两分钟,那么当我重试时,提交通常会成功。

我的理论是服务器正在对 .hg/ 的内容进行索引或病毒扫描


我不知道有保证的解决方法,但是在我的小型存储库中,如果我尝试一两次,我通常可以获取我的变更集。随着存储库文件活动的减少,您的运气可能会增加。

【讨论】:

    【解决方案3】:

    我不太了解提交,但我知道 Mercurial/TortoiseHG 在您推送到在 Windows 下映射的 Linux 驱动器时会出现问题。

    查看我写的这些答案:

    当您尝试提交的存储库直接位于映射的 Linux 驱动器上时,可能会出现相同的问题。

    我建议您将存储库放在真正的 Windows 驱动器上,然后尝试在那里提交。
    如果是,那么您描述的问题可能是由于 Linux 驱动造成的。

    【讨论】:

      猜你喜欢
      • 2013-11-13
      • 2014-08-22
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多