水星卡住「等待鎖定」

克隆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


#1樓

若是僅在映射的驅動器上發生,則多是錯誤https://bitbucket.org/tortoisehg/thg/issue/889/cant-commit-file-over-network-share 。 使用UNC路徑而不是驅動器號彷佛能夠避免此問題。 進程


#2樓

當「等待鎖定存儲庫」時,刪除存儲庫文件: .hg/wlock (或者能夠在.hg/store/lock字符串

刪除鎖定文件時,必須確保沒有其餘東西正在訪問存儲庫。 (若是鎖是零或空白的字符串,則幾乎能夠確定是這樣)。 get


#3樓

若是鎖定的存儲庫是原始存儲庫,那麼我沒法想象它會對其進行修改以克隆它,所以,這只是防止您在中間對其進行更改並弄亂了克隆庫。 卸下鎖後應該沒問題。 it

可是,新克隆的副本(若是是本地克隆)可能處於任何形式的畸形狀態,所以您應該將其丟棄並從新開始。 (若是它是一個遠程克隆,我但願它會失敗,而且已經丟棄了不完整的副本。) io


#4樓

今天,在嘗試推送的BSoD以後,同事遇到了這個確切的問題。 他不得不: file

而後他的回購再次起做用。

編輯:根據@Marmoute的評論-處理與鎖相關的問題時,使用hg debuglock是一種安全的選擇,而不是一味刪除.hg/store/lock文件。


#5樓

我不但願這是一個成功的答案,但這是一個很是不尋常的狀況。 提到萬一我之外的人遇到了它。

今天,我在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徹底能夠工做,儘管除了此推進以外彷佛還行。

相關文章
相關標籤/搜索