Je ne m'attends pas à ce que ce soit une réponse gagnante, mais c'est une situation assez inhabituelle. Mentionner au cas où quelqu'un d'autre que moi le rencontrerait.
Aujourd'hui, j'ai obtenu le "attente de verrouillage sur le référentiel" sur une commande hg push.
Quand j'ai tué la commande hg bloquée, je ne voyais aucun .hg / store / lock
Lorsque j'ai recherché .hg / store / lock alors que la commande était suspendue, elle existait. Mais le fichier de verrouillage a été supprimé lorsque la commande hg a été supprimée.
Quand je suis allé à la cible du push, et que j'ai exécuté le hg pull, pas de problème.
Finalement, j'ai réalisé que l'ID de processus sur la poussée hg était un message d'attente de verrouillage qui changeait à chaque fois. Il s'avère que le "hg push" était suspendu en attendant un verrou maintenu par lui-même (ou peut-être un sous-processus, je n'ai pas enquêté plus avant).
Il s'avère que les deux espaces de travail, appelons-les A et B, avaient des arbres .hg partagés par symlink:
A/.hg --symlinked-to--> B/.hg
Ce n'est PAS une bonne chose à faire avec Mercurial. Mercurial ne comprend pas le concept de deux espaces de travail partageant le même référentiel. Je comprends, cependant, comment quelqu'un venant à Mercurial d'un autre VCS pourrait vouloir cela (Perforce le fait, mais pas un DVCS; le Bazaar DVCS pourrait le faire). Je suis surpris qu'un REP-ROOT / .hg avec lien symbolique fonctionne du tout, bien qu'il semble excepter cette poussée.