在克隆mercurial存储库时,在窗口中出现蓝屏。

重启后,我现在得到这条消息几乎所有的hg命令:

c:\src\>hg commit
waiting for lock on repository c:\src\McVrsServer held by '\x00\x00\x00\x00\x00\
x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
interrupted!

谷歌没有帮助。

任何建议吗?


当前回答

当“waiting for lock on repository”时,删除存储库文件:.hg/wlock(或者它可能在.hg/store/lock中)

在删除锁文件时,必须确保没有其他任何东西正在访问存储库。(如果锁是一个0或空白的字符串,这几乎肯定是正确的)。

其他回答

同事今天也遇到了同样的问题,在试图推的时候,他突然晕眩了。他不得不:

删除文件.hg/store/lock(根据接受的答案) 删除文件。hg/store/phaseroots(根据这个TortoiseHG错误报告)

然后他的回购又起作用了。

编辑:根据@Marmoute的评论,在处理与锁相关的问题时,使用hg debuglock比盲目删除.hg/store/lock文件更安全。

当工作目录等待锁定时,删除.hg/wlock。

我在Win 7上也遇到了同样的问题。 解决方案是删除以下文件:

.hg /商店/ phaseroots .hg / wlock

至于.hg/store/lock -没有这样的文件。

我也有同样的问题。当我试图提交时,收到以下消息:

waiting for lock on working directory of <MyProject> held by '...'

Hg debuglock显示:

lock:  free
wlock:  (66722s)

所以我执行了以下命令,这为我解决了问题:

hg debuglocks -W

使用Win7和TortoiseHg 4.8.7。

我非常熟悉Mercurial的锁定代码(从1.9.1开始)。上面的建议很好,但我想补充一点:

我在野外见过这种情况,但很少,而且只在Windows机器上见过。 删除锁文件是最简单的解决方法,但是你必须确保没有其他东西正在访问存储库。(如果锁是一串零,这几乎肯定是正确的)。

(好奇的人:我还没能找到这个问题的原因,但怀疑这可能是旧版本的Mercurial访问存储库,或者在某些版本的Windows上Python的socket.gethostname()调用中出现问题。)