No espero que sea una respuesta ganadora, pero es una situación bastante inusual. Mencionar en caso de que alguien que no sea yo se encuentre con él.
Hoy recibí el "esperando bloqueo en el repositorio" en un comando hg push.
Cuando maté el comando hg colgado no pude ver .hg / store / lock
Cuando busqué .hg / store / lock mientras el comando estaba colgado, existía. Pero el archivo de bloqueo se eliminó cuando se mató el comando hg.
Cuando fui al objetivo del empuje, y ejecuté hg pull, no hay problema.
Finalmente, me di cuenta de que la identificación del proceso en el hg push era un mensaje de bloqueo de espera que cambiaba cada vez. Resulta que el "empuje hg" estaba colgando esperando un bloqueo en sí mismo (o posiblemente un subproceso, no investigé más).
Resulta que las dos áreas de trabajo, llamémoslas A y B, tenían árboles .hg compartidos por enlace simbólico:
A/.hg --symlinked-to--> B/.hg
Esto NO es algo bueno que hacer con Mercurial. Mercurial no entiende el concepto de dos espacios de trabajo que comparten el mismo repositorio. Sin embargo, entiendo cómo alguien que viene a Mercurial desde otro VCS podría querer esto (Perforce lo hace, aunque no es un DVCS; según los informes, el Bazaar DVCS puede hacerlo). Me sorprende que un REP-ROOT / .hg con enlace simbólico funcione en absoluto, aunque parece que exceptúa este impulso.