2009-08-21 46 views
12

我已经使用Mercurial v 1.1几个月来版本文档和其他文件。昨天它突然失败,消息:Mercurial突然认为所有文件都已更改 - 等待工作目录锁定

waiting for lock on working directory 

这发生在我有.hg控制下的所有项目。 Mercurial也认为所有项目中的所有文件都发生了变化。

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

可能造成这种情况的唯一原因是Windows在我的计算机上安装了安全补丁。

是否有其他人看过Mercurial?

回答

9

对于工作目录,锁定为.hg/wlock。文件是否存在? 对于重建dirstate(注意它不会恢复像添加/删除/重命名/副本的更改),您可以使用hg debugrebuildstate

0

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

我必须在1.1.1二进制文件(来自Cygwin)中发生损坏。

Cygwin仍然在1.1。

15

我已经成功删除该文件.hg/wlock如果它存在,那么一切都恢复正常。如果你担心失去某些东西,只是做一个副本

0

要找出哪些文件被锁定的目录,在工作目录:

hg debuglocks 

这应该给指示哪些文件被锁定的目录结果例如

lock: free 
wlock: (461232s) 

要解锁使用武力:

hg debuglocks --force-wlock 

或:

hg debuglocks --force-lock 

了解更多信息:

hg debuglocks -h 

注意这一段:

锁保护Mercurial的数据的完整性,所以应该小心处理 。系统崩溃或其他中断可能会导致无法正确释放锁,但Mercurial通常会检测到,并且 会自动删除此类过时的锁。