これが勝者となるとは思いませんが、かなり珍しい状況です。私以外の誰かがそれに遭遇した場合に備えて言及します。
今日、hg pushコマンドで「リポジトリのロックを待機しています」が表示されました。
hung hgコマンドを強制終了すると、.hg / store / lockが表示されませんでした
コマンドがハングしているときに.hg / store / lockを探したところ、存在していました。しかし、hgコマンドが強制終了されたときにロックファイルが削除されました。
プッシュのターゲットに行ってhg pullを実行しても問題ありません。
最終的に、hg pushのプロセスIDがロック待機メッセージであり、毎回変更されることに気付きました。「hg push」は、それ自体が保持しているロックを待機してハングしていることがわかりました(またはサブプロセスである可能性があります。これ以上は調査しませんでした)。
2つのワークスペースをAとBと呼び、.hgツリーがsymlinkで共有されていることがわかります。
A/.hg --symlinked-to--> B/.hg
これは、Mercurialを使用するのは良いことではありません。Mercurialは、同じリポジトリを共有する2つのワークスペースの概念を理解していません。ただし、別のVCSからMercurialにアクセスする人がこれをどのように望んでいるかは理解しています(PerforceはDVCSではありませんが、Bazaar DVCSはそうできると報告しています)。シンボリックリンクされたREP-ROOT / .hgがまったく機能することには驚いていますが、このプッシュ以外のようです。