克隆Mercurial存储库时,在Windows中出现了蓝屏。 安全
从新启动后,我如今收到几乎全部hg命令的如下消息: spa
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!
Google没有帮助。 debug
有小费吗? code
若是仅在映射的驱动器上发生,则多是错误https://bitbucket.org/tortoisehg/thg/issue/889/cant-commit-file-over-network-share 。 使用UNC路径而不是驱动器号彷佛能够避免此问题。 进程
当“等待锁定存储库”时,删除存储库文件: .hg/wlock
(或者能够在
) 字符串.hg/store/lock
删除锁定文件时,必须确保没有其余东西正在访问存储库。 (若是锁是零或空白的字符串,则几乎能够确定是这样)。 get
若是锁定的存储库是原始存储库,那么我没法想象它会对其进行修改以克隆它,所以,这只是防止您在中间对其进行更改并弄乱了克隆库。 卸下锁后应该没问题。 it
可是,新克隆的副本(若是是本地克隆)可能处于任何形式的畸形状态,所以您应该将其丢弃并从新开始。 (若是它是一个远程克隆,我但愿它会失败,而且已经丢弃了不完整的副本。) io
今天,在尝试推送的BSoD以后,同事遇到了这个确切的问题。 他不得不: file
.hg/store/lock
(根据接受的答案 ) .hg/store/phaseroots
(根据此TortoiseHG错误报告 ) 而后他的回购再次起做用。
编辑:根据@Marmoute的评论-处理与锁相关的问题时,使用hg debuglock
是一种安全的选择,而不是一味删除.hg/store/lock
文件。
我不但愿这是一个成功的答案,但这是一个很是不寻常的状况。 提到万一我之外的人遇到了它。
今天,我在hg push命令上得到了“等待存储库锁定”。
当我杀死了hg hg命令时,看不到.hg / store / lock
当命令挂起时我寻找.hg / store / lock时,它存在。 可是当hg命令被杀死时,锁定文件被删除。
当我去推的目标,并执行汞拉,没有问题。
最终,我意识到hg push上的进程ID是每次都在更改的锁等待消息。 事实证实,“ hg推送”正在挂起,等待自身持有的锁(或者多是子进程,我没有作进一步调查)。
事实证实,两个工做区(分别称为A和B)具备由symlink共享的.hg树:
A/.hg --symlinked-to--> B/.hg
这与Mercurial无关。 Mercurial没法理解共享相同存储库的两个工做区的概念。 可是,我确实知道,有人从另外一个VCS来到Mercurial可能会想要这样作(Perforce确实作到了,尽管不是DVCS;据报道,Bazaar DVCS能够这样作)。 我感到惊讶的是,一个符号连接的REP-ROOT / .hg彻底能够工做,尽管除了此推进以外彷佛还行。