Non mi aspetto che questa sia una risposta vincente, ma è una situazione abbastanza insolita. Menzionando nel caso in cui qualcuno diverso da me lo incontri.
Oggi ho ricevuto "in attesa di blocco sul repository" su un comando hg push.
Quando ho ucciso il comando hung hg non riuscivo a vedere nessun .hg / store / lock
Quando ho cercato .hg / store / lock mentre il comando era bloccato, esisteva. Ma il file di blocco è stato eliminato quando il comando hg è stato ucciso.
Quando sono andato al bersaglio della spinta e ho eseguito hg pull, nessun problema.
Alla fine mi sono reso conto che l'ID del processo sul push hg era il messaggio di attesa in attesa cambiava ogni volta. Si scopre che la "spinta hg" era sospesa in attesa di un blocco tenuto da solo (o forse un sottoprocesso, non ho indagato ulteriormente).
Si scopre che le due aree di lavoro, chiamiamole A e B, avevano alberi .hg condivisi da symlink:
A/.hg --symlinked-to--> B/.hg
Questa NON è una buona cosa da fare con Mercurial. Mercurial non comprende il concetto di due aree di lavoro che condividono lo stesso repository. Capisco, tuttavia, come qualcuno che arriva a Mercurial da un altro VCS potrebbe volerlo (Perforce lo fa, anche se non un DVCS; secondo quanto riferito, il DVCS di Bazaar può farlo). Sono sorpreso che un REP-ROOT / .hg con collegamento simbolico funzioni affatto, anche se sembra fare eccezione per questa spinta.