TFS 2012 Unshelve to different branch -> un article avec la même clé a déjà été ajouté

j'ai besoin d'aide pour résoudre la question suivante:

j'essaie de désactiver le code de la branche source sur une branche cible.

j'utilise ce qui suit:

  • VS2012 RC
  • TFS 2012
  • VS2012 x64 message de commande Cross Tools

lorsque j'utilise la commande prompt pour effectuer l'opération unshelve, ce qui suit se produit:

  1. la boîte de dialogue "Détails sur les tablettes" S'affiche avec la liste des fichiers de changement.
  2. cliquez sur le bouton Unshelve.
  3. observer la sortie de l'invite de commande: " un élément avec la même clé a déjà été ajouté."

j'ai téléchargé ServicePack1 pour les outils électriques. Cependant, je n'ai pas réussi à résoudre ce problème.

10
demandé sur John Saunders 2012-08-16 02:27:21

4 réponses

j'ai eu le même problème et je l'ai corrigé quand j'ai re-rayé les changeset de la branche source mais j'ai choisi de ne pas préserver les changements pendants localement . Après cela, la migration des nouveaux rayonnages s'est déroulée en douceur.

(je me suis aussi assuré d'avoir suivi les étapes ci-dessous tirées d'autres réponses sur ce site)

  • utiliser un espace de travail qui englobe les branches source et cible
  • Exécuter l' commande à partir du dossier mappé à la branche source
  • vérifier les guillemets autour des chemins contenant des espaces
  • suppression du cache dans C:\Users [nom D'utilisateur]\AppData\Local\Microsoft\Team Foundation\4.0\Cache and restarting Visual Studio
8
répondu idlemind 2013-05-15 09:32:27

j'ai eu la même erreur en utilisant Visual Studio 2013 et la commande suivante:

> tfpt unshelve /migrate /source:"$/Root/Solution" /target:"$/Root/Branches/Solution" "The name of my shelveset"
> An item with the same key has already been added



recherche

voici ce que j'ai essayé de résoudre le problème:

  • effacement de la mémoire Cache par Andrey réponse
  • essayez d'exécuter la commande à partir du Source - > branche et branche - > Source
  • Mon espace de travail comprenait déjà les branches source et cible



Solution

ouvrez votre équivalent de L'invite de commande VS2013 x86 Native Tools.

  1. vérifiez que vous avez installé les outils électriques de la Fondation Team:

    C:\Program fichiers (x86)\Microsoft Visual Studio 12.0\VC\tfpt

  2. assurez-vous que vous avez des changements 0 en attente et exclus .

    J'ai eu quelques changements exclus qui ont été détectés mais pas ajoutés et c'est ce qui m'a surpris. Les changements exclus devraient ressembler à ceci::



    enter image description here

    Remarque: Non "Détecté: XX (ajoute)" - devrait pas être visible

  3. quand vous lancez tf status , vous devriez voir quelque chose comme ce qui suit.

    1 changement(s) pour le .tfignore fichier ou 0 changement (s). Tout le reste va perturber la fusion.

    C:\tfs\Root\Solution > TF statut

    Changement de nom de fichier chemin Local


    $/de la Racine .tfignore edit C:\tfs\Root\Solution.tfignore

    1 changement (s)

  4. assurez-vous d'exécuter la commande tfpt à partir du répertoire de la solution source

vous devriez maintenant être en mesure de fusionner avec succès un shelveset d'une branche à l'autre.

Note sur .tfsignore:

Si vous avez beaucoup de modifications que vous ne voulez pas l'annuler, pour quelque raison que ce soit, alors une modification de l' .le fichier tfignore est ok.



Si c'est le seul fichier que vous avez laissé avec des modifications, il ne freinera pas la fusion.

.tfignore référence = > stackoverflow - Comment faire ignorer les fichiers/répertoires dans tfs?

8
répondu Ralph Willgoss 2017-05-23 12:24:41

essayer de défaire tous les changements sur la branche Source et cible et puis essayer à nouveau...

4
répondu Ravi Sen 2015-01-05 11:36:48

essayer de supprimer tous les fichiers dans le dossier suivant et redémarrer VS2012 ( Source ):

C:\Users [nom D'utilisateur]\AppData\Local\Microsoft\Team Foundation\4.0\Cache

2
répondu Andrey Morozov 2013-01-05 10:03:34