在克隆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!
谷歌没有帮助。
任何建议吗?
在克隆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 working directory of <MyProject> held by '...'
Hg debuglock显示:
lock: free
wlock: (66722s)
所以我执行了以下命令,这为我解决了问题:
hg debuglocks -W
使用Win7和TortoiseHg 4.8.7。
其他回答
我不指望这是一个成功的答案,但这是一个相当不寻常的情况。 以防我以外的人碰到。
今天我在hg push命令中得到了“waiting for lock on repository”。
当我杀死hung hg命令时,我看不到。hg/store/lock
当我在挂起命令时寻找.hg/store/lock时,它是存在的。但是当hg命令被杀死时,锁文件被删除了。
当我走到目标推,并执行hg拉,没有问题。
最终我意识到hg推送上的进程ID是锁等待消息每次都在改变。结果是,“hg push”挂起等待一个由它自己持有的锁(或者可能是一个子进程,我没有进一步研究)。
这两个工作区,让我们称它们为A和B,通过symlink共享。hg树:
A/.hg --symlinked-to--> B/.hg
这对Mercurial来说不是一件好事。Mercurial不理解两个工作区共享同一个存储库的概念。然而,我确实理解,从另一个VCS来到Mercurial的人可能想要这个(Perforce想要,尽管不是DVCS;据报道,芭莎DVCS可以这样做)。我很惊讶符号链接的REP-ROOT/。Hg完全工作,尽管它似乎除了这个推力。
我在Win 7上也遇到了同样的问题。 解决方案是删除以下文件:
.hg /商店/ phaseroots .hg / wlock
至于.hg/store/lock -没有这样的文件。
同事今天也遇到了同样的问题,在试图推的时候,他突然晕眩了。他不得不:
删除文件.hg/store/lock(根据接受的答案) 删除文件。hg/store/phaseroots(根据这个TortoiseHG错误报告)
然后他的回购又起作用了。
编辑:根据@Marmoute的评论,在处理与锁相关的问题时,使用hg debuglock比盲目删除.hg/store/lock文件更安全。
当“waiting for lock on repository”时,删除存储库文件:.hg/wlock(或者它可能在.hg/store/lock中)
在删除锁文件时,必须确保没有其他任何东西正在访问存储库。(如果锁是一个0或空白的字符串,这几乎肯定是正确的)。
我也有同样的问题。当我试图提交时,收到以下消息:
waiting for lock on working directory of <MyProject> held by '...'
Hg debuglock显示:
lock: free
wlock: (66722s)
所以我执行了以下命令,这为我解决了问题:
hg debuglocks -W
使用Win7和TortoiseHg 4.8.7。