web-dev-qa-db-fra.com

Mercurial: "le fichier non suivi dans le répertoire de travail diffère du fichier dans la révision demandée"?

Quelqu'un peut-il me dire ce que signifie cette erreur Mercurial?

le fichier non suivi dans le répertoire de travail diffère du fichier dans la révision demandée

Cela s'est produit lors d'une extraction hg:

C:\myapp>hg fetch ssh://hg/myapp-v1
pulling from ssh://hg/myapp-v1
searching for changes
adding changesets
adding manifests
adding file changes
added 93 changesets with 693 changes to 78 files (+1 heads)
updating to 797:0df7dbe7dc06
196 files updated, 0 files merged, 196 files removed, 0 files unresolved
merging with 704:edb7765768c6
abort: untracked file in working directory differs from file in requested revision: 'a/b/c/d.Java'

D'après ce que je peux dire, ce fichier (a/b/c/d.Java) ne correspond à aucun chemin configuré dans .hgignore. Et ce fichier spécifique est également identique dans les deux référentiels (myapp et myapp-v1).

Je ne sais pas ce que cela signifie même. ??

77
Marcus Leon

Cela vous indique que vous avez déjà un fichier nommé a/b/c/d.Java dans votre répertoire de travail local du dépôt myapp, mais il n'a pas été ajouté (suivi) et fetch n'est pas disposé à le remplacer lors de la mise à jour/fusion.

Vous pouvez faire de l'éther:

  • Déplacez votre copie de a/b/c/d.Java à l'écart, puis effectuez l'extraction/la mise à jour. Après cela, comparez votre _ a/b/c/d.Java à celui que l'on ramène.

ou

  • hg add a/b/c/d.Java, hg commit a/b/c/d.Java, puis tirez/fusionnez

Le premier fonctionne parce qu'il n'y a plus de fichier sur le chemin, et le dernier fonctionne parce que votre copie est suivie afin que Mercurial puisse les fusionner.

Vous devez également envisager d'arrêter d'utiliser fetch. Il combine pull et update et merge pour vous, ce qui n'est tout simplement pas un moyen sûr d'être. Dans ce cas, votre pull aurait réussi et update et merge vous auraient donné des messages beaucoup plus utiles.

81
Ry4an Brase

J'ai contourné cela en exécutant hg update --clean

27
azeroth12

J'ai essayé la réponse de Ry4an (de supprimer le fichier) et cela n'a toujours pas fonctionné, j'ai donc exécuté une purge et cela s'est débarrassé de toutes les traces de sorte que cela fonctionne après. Juste au cas où quelqu'un chercherait une solution alternative.

8
Justin Pihony

Acceptez simplement la boîte de dialogue d'erreur, puis cochez Discard local changes, no backup

enter image description here

Et vous devriez être bon, il écrasera tous les fichiers locaux non suivis ...

8
Matas Vaitkevicius

Si vous utilisez TortoiseHG, vous pouvez cocher l'option "Supprimer les modifications locales, pas de sauvegarde" dans la fenêtre de mise à jour.

3
Owen Pauling