TF203015 l'Item $/path / file a un changement incompatible en attente. Tout en essayant de unshelve

J'utilise Visual Studio 2010 Pro contre Team Server 2010 et j'ai fait ouvrir mon projet (apparemment) comme solution à partir du repo, mais j'aurais dû l'ouvrir comme"site web". J'ai découvert cela pendant la compilation, alors je suis allé mettre mes nouvelles modifications à l'écart et j'ai supprimé le projet de mon disque local, puis j'ai ouvert le projet de nouveau à partir de la source (cette fois en tant que site web) et maintenant je ne peux pas défaire mes fichiers.

Est-il un moyen de contourner cela? Je n'ai sauter quelque chose? Ai-je besoin d' pour faire de la maintenance sur le serveur?

j'ai trouvé cette question sur SO #2332685 mais je ne sais pas de quels fichiers cache il parle (je suis sur XP : ) EDIT: a trouvé ce lien après avoir posté la question, désolé pour le retard dans les recherches, n'a toujours pas corrigé mon problème

bien sûr je ne trouve pas de code d'erreur pour TF203015 nulle part, donc pas de résolution non plus (d'où mon inclusion du numéro dans le titre, ouais?)

EDIT: Je devrais probablement mentionner que ces fichiers n'ont jamais été vérifié en premier lieu. N'est-ce important? Pouvez-vous ranger un article non vérifié? C'est ce que je fait de mal?

EDIT: WHAP - TROUVÉ!!! utilisez "Undo" sur les éléments qui n'existent pas parce qu'ils apparaissent dans les modifications en attente comme des checkins.

44
demandé sur Community 2010-05-10 20:52:49

8 réponses

j'avais supprimé les fichiers en essayant de recharger l'espace de travail, même si j'avais mis les changements de côté. Puis VS2010 a pensé que ces dossiers étaient toujours en attente de sauvegarde. Je n'avais pas besoin de ça, donc j'ai dû trouver pour "annuler" les changements dans les changements en attente.

alors je pourrais décrocher.

Il pensait que j'avais deux ops (unshelve, s'engager à ajouter) simultanément, et j'ai pensé que je n'avais qu'un op (unshelve).

46
répondu jcolebrand 2018-06-13 15:18:29

il s'agit d'une légère mise à part de la question du PO

vous pouvez obtenir un TF203015 lorsque vous essayez de fusionner par lots un ensemble de modifications multiples d'une branche à l'autre sans la diligence requise.

considérez une situation où vous avez un tronc principal et une branche DEV. Vous avez ramifié DEV de MAIN et avez travaillé avec diligence loin à une fonctionnalité dans DEV; vérifier le travail de nouveau dans DEV que vous avez progressé. Maintenant, avance rapide une semaine ou deux. Vous êtes maintenant fonctionnalité complète et souhaitez fusionner dans la PRINCIPALE.

C'est là qu'un de nos devs a frappé cette erreur.

il avait travaillé sur une solution pendant des semaines, et vérifier changesets de nouveau dans DEV périodiquement, donc voulu fusionner une série non contiguë de changesets de nouveau dans MAIN. Donc, il choisit l'option de fusion, sélectionne la première série de modifications; fusionne sans problème, puis va immédiatement fusionner la série de modifications suivante; et bang TF203015, et son test très inutile dans la fenêtre de sortie; incompatible en attente de modifications.

après un peu de bricolage autour de nous, nous réalisons maintenant ce qui se passe ici; la première fusion a créé un changement en attente dans MAIN pour la solution des développeurs. La prochaine tentative de fusion était également des modifications à la même solution, ce qui exigerait de TFS de "mettre en file d'attente" un deuxième ensemble de modifications en attente pour les mêmes fichiers. Il ne peux pas faire cela.

donc, dans ce scénario, TF203015 signifie:; "La direction de destination a déjà des changements en attente sur certains fichiers qui sont modifiés dans ce jeu de modifications. S'il vous plaît résoudre et engager les changements de branche de destination avant d'effectuer cette opération de fusion"

la solution; après chaque opération de fusion notre développeur teste L'espace de travail pour MAIN et engage le changement en attente causé par la fusion, puis retourne à DEV et répète.

en fait sensible et simple, mais masqué par un message d'erreur très obtus.

41
répondu Pete Stensønes 2016-07-19 17:41:48

vous pouvez utiliser les outils D'alimentation du serveur de la fondation de L'équipe mars 2011 ( http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx ) qui comprend la commande tfpt unshelve .

une fois les outils électriques installés, ouvrez une invite de commande Visual Studio, changez le répertoire qui contient le projet d'intérêt et exécutez la commande tfpt unshelve . Il déverrouillera et affichera le dialogue de fusion afin que vous puissiez résoudre les conflits.

j'attribue à ce billet de blog le mérite de m'avoir aidé à trouver cette solution: http://fluentbytes.com/the-how-and-why-behind-tf203015-file-has-an-incompatible-change-while-unshelving-a-shelve-set

5
répondu Mark Freeman 2014-09-25 13:01:48

j'avais ce qui semblait être le MÊME PROBLÈME, MAIS j'avais créé une branche après avoir mis de côté mes changements et je voulais enlever ces changements à la nouvelle branche.

TFS ne peut pas dévier vers un chemin différent de celui sur lequel l'étagère a été créée.

Solution: je suis revenu à la branche d'origine puis j'ai utilisé beyond compare pour fusionner les changements de ma branche d'origine à la nouvelle branche et j'ai vérifié.

2
répondu user594315 2011-01-28 19:36:03

il se peut aussi qu'après avoir créé un dossier dans say a" Test " et que vous vouliez fusionner de dev à test, que vous n'ayez pas cette structure de dossier nouvellement créée vérifiée dans TFS - vous obtiendrez /pouvez aussi obtenir ce message d'erreur.

par conséquent, cette erreur de message peut se produire sans rien à voir avec les rayonnages ainsi que pour d'autres venant de google et de trouver cette page.

2
répondu Tom Stickel 2015-06-25 20:06:49

c'est peut-être la même chose que la réponse de jcolebrand, mais je crains d'avoir trouvé le phrasé un peu abstrait. Des excuses sincères si je ne fais que répéter.

dans mon scénario, le message incompatible pending change a été présenté parce que j'essayais de faire reculer plusieurs ensembles de modifications, et le même fichier a été affecté par Plus d'un de ces ensembles de modifications.

dans mon cas, je ne voulais pas m'engager avant que tous les changements aient été annulés. Je crois que si j'avais été en mesure de s'engager après la restauration de chaque révision, l'erreur ne serait pas arrivé.

la méthode qui a fonctionné pour moi était la suivante:

  • j'ai choisi de revenir en arrière un jeu de changement à la fois. J'ai trouvé que l'utilisation de la ligne de commande était en fait une façon plus informative de le faire parce qu'elle répertorie tous les conflits, alors que je pense que le VS UI rollback ne répertorie que le premier.
  • en roulant back a changeset, s'il y avait un incompatible pending change , je devais défaire les modifications en attente de mon espace de travail pour les fichiers affectés.
  • quand tous les changesets ont été retranchés, j'ai dû retourner manuellement les fichiers qui avaient connu incompatible pending change . Surtout, cela pourrait être obtenue simplement par l'obtention d'une version spécifique du fichier (le "dernier-" version avant toutes les mauvaises archivages commencé). Mais pour certains fichiers où il y avait eu deux changements et modifications non, J'ai eu la "dernière connue-bon" et appliqué manuellement les bons changements.
1
répondu OutstandingBill 2018-03-09 11:27:01

ce lien a résolu mon problème:

https://blogs.infosupport.com/the-how-and-why-behind-tf203015-lt-file-gt-has-an-incompatible-change-while-unshelving-a-shelve-set /

la raison était en attente de changement dans le même espace de travail créer un changement incompatible. Alors annulez les changements en attente et essayez unshelve. Ceci devrait résoudre le problème.

0
répondu Kapil 2015-10-29 14:59:28

si vous avez deux branches MAIN(cible) et DEV(source), maintenant vous voulez fusionner DEV en MAIN, puis tous les fichiers que vous voulez fusionner à partir de votre source, ne doit pas être plus ancien que les fichiers similaires dans votre branche cible.

par exemple: vous avez un test de fichier modifié.cs dans votre branche DEV, modifié à 14.03.2016. Dans votre branche principale, vous avez test.cs changé à 15.03.2016. Donc la cible est plus récente que le fichier source et vous avez TF203015.

Solution: naviguez dans L'Explorateur TFS vers le fichier de conflit et fusionnez-le explicitement. TFS ouvrira le gestionnaire de conflits et vous pourrez fusionner les conflits à la main. Après vous pouvez fusionner les changeset sélectionnés.

remarques: Si vous avez plus de conflits, vous devez naviguer vers chaque fichier de conflits et le fusionner explicitement, de sorte que TFS ouvre le gestionnaire de conflits et vous pouvez le fusionner à la main.

0
répondu peter70 2016-03-16 07:21:17