代码之家  ›  专栏  ›  技术社区  ›  Dean Schulze

Mercurial突然认为所有文件都已更改,正在等待工作目录的锁定

  •  12
  • Dean Schulze  · 技术社区  · 16 年前

    几个月来,我一直在使用Mercurial v 1.1对文档和其他文件进行版本设置。昨天,它突然失败了,发出了这样的信息:

    waiting for lock on working directory
    

    这在我正在进行的所有项目中都会发生。汞控制。Mercurial还认为所有项目中的所有文件都已更改。

    没有。hg/store/lock文件在该项目中,它说它正在等待锁定。

    唯一可能导致这种情况的原因是Windows一夜之间在我的电脑上安装了安全补丁。

    还有人见过Mercurial吗?

    4 回复  |  直到 16 年前
        1
  •  15
  •   Marcus Shockley    16 年前

    我成功地删除了那个文件 .hg/wlock 如果它完全存在,那么一切都会恢复正常。如果你担心失去什么,就复印一份

        2
  •  9
  •   tonfa    16 年前

    对于工作目录,锁是 .hg/wlock .文件存在吗? 要重建dirstate(注意它不会恢复添加/删除/重命名/复制等更改),可以使用 hg debugrebuildstate .

        3
  •  0
  •   Dean Schulze    16 年前

    我升级到了hg版本1.3.1,现在一切正常。

    我一定是在1.1.1二进制文件(来自Cygwin)中被破坏了。

    Cygwin仍然使用1.1。

        4
  •  0
  •   Colin    8 年前

    要查明哪个文件正在锁定目录,请在工作目录中:

    hg debuglocks
    

    这将给出一个结果,指示哪个文件正在锁定目录,例如。

    lock: free
    wlock: (461232s)
    

    要解锁,请使用武力:

    hg debuglocks --force-wlock
    

    或者:

    hg debuglocks --force-lock
    

    有关更多信息:

    hg debuglocks -h
    

    注意这一段:

    锁保护Mercurial数据的完整性,因此应该进行处理 小心。系统崩溃或其他中断可能会导致锁定 虽然Mercurial通常会检测到 自动移除这些过时的锁。

    推荐文章