Mercurial: “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?

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

Cela s’est produit lors de l’extraction d’un fichier 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 des chemins configurés dans .hgignore. Et ce fichier spécifique est également identique dans les deux référentiels (myapp & myapp-v1).

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

Il vous a/b/c/d.java vous avez déjà un fichier nommé a/b/c/d.java dans votre répertoire de travail local du repo myapp, mais qu’il n’a pas été ajouté (suivi), et que fetch ne veut pas l’écraser lors de la mise à jour. / fusion.

Les choses que vous pouvez faire sont l’éther:

  • Déplacez votre copie de a/b/c/d.java hors du chemin, puis effectuez le pull / update. Après cela, comparez votre déplacé a/b/c/d.java à celui a/b/c/d.java .

ou

  • hg add a/b/c/d.java , hg commit a/b/c/d.java hg add a/b/c/d.java hg commit a/b/c/d.java , puis tire / fusionne

Le premier fonctionne car il n’y a plus de fichier dans le chemin, et le dernier fonctionne parce que votre copie est suivie pour que Mercurial puisse les fusionner.

En outre, vous devriez envisager d’arrêter d’utiliser fetch . Il combine pull , update et merge pour vous, ce qui n’est pas une façon sûre d’être. Dans ce cas, votre pull aurait réussi et la update à update et la merge auraient donné des messages beaucoup plus utiles.

J’ai contourné cela en lançant hg update --clean

J’ai essayé la réponse de Ry4an (de la suppression du fichier) et celle-ci ne fonctionnait toujours pas, alors j’ai lancé une purge et j’ai éliminé toutes les traces telles qu’elles fonctionnaient après. Juste au cas où quelqu’un cherche une solution alternative.

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

entrer la description de l'image ici

Et vous devriez être bon, il va écraser tous les fichiers locaux non suivis …

Si vous utilisez TortoiseHG, vous pouvez cocher l’option “Annuler les modifications locales, pas de sauvegarde” dans la fenêtre de mise à jour.