Question

Supposons qu'un développeur de mon équipe ait mis de côté ses modifications qu'il a apportées à la branche A. Et je travaille sur la branche B. Puis-je annuler la modification de ses modifications dans la branche B? (Par interface graphique ou invite de commande)

Était-ce utile?

La solution

Les Outils d'alimentation de Visual Studio doivent vous permettre de le faire.

C:\src\2\Merlin\Main>tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes

Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.

Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
                     [/migrate /source:serverpath /target:serverpath]

 shelvesetname          The name of the shelveset to unshelve
 /nobackup              Skip the creation of a backup shelveset
 /migrate               Rewrite the server paths of the shelved items
                        (for example to unshelve into another branch)
 /source:serverpath     Source location for path rewrite (supply with /migrate)
 /target:serverpath     Target location for path rewrite (supply with /migrate)
 /nobackup              Skip the creation of a backup shelveset

Par exemple, pour fusionner un ensemble de tablettes appelé "Nom du groupe de participants". créé sur Branch1 à Branch2, utilisez ceci:

>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"

Autres conseils

Solution alternative à tfpt qui évite de devoir fusionner chaque fichier manuellement

Le problème avec l'outil d'alimentation tfs est que vous effectuez une" fusion sans fondement ", vous devez donc confirmer chaque fichier . J'avais un stock de plus de 800 fichiers, je ne fais jamais confiance au bouton de "fusion automatique" et je ne voulais pas consulter chaque fichier à la fois. Je devais donc trouver un autre moyen!

  • Téléchargez et installez le TFS Shelveset Sidekick .
  • L'outil apparaît sous "Outils" dans VS2010
  • Lancez l'outil "Shelveset Sidekick", cliquez sur Rechercher pour afficher les étagères
  • Faites un clic droit sur votre étagère et sélectionnez "Exporter une étagère"
  • Enregistrer dans un emplacement vide tel que C: \ temp \ nom de plateau
  • Maintenant, une structure de répertoires complète contenant JUSTE les nouveaux fichiers

(Remarque: il n’existe pas de barre de progression lors de l’exportation. Si vous avez un grand plateau qui prend beaucoup de temps à exporter, il vous suffit de vérifier dans l’explorateur Windows (Fichier> Propriétés & taille) que les fichiers arrivent encore. si vous pensez que c'est gelé).

Il ne vous reste plus qu'à les copier dans la nouvelle branche à l'aide de l'Explorateur Windows.

Cela a fonctionné pour moi:

  • Vérification de la solution complète en premier (dans la nouvelle branche)
  • Fermez cette solution
  • Déconnectez TFS de VS ( Outil à suivre ceci ) - voir ci-dessous pourquoi c'est important…
  • Copiez les fichiers dans l'Explorateur Windows. La structure de répertoires dans c: \ temp \ nom de plateau devra être renommée pour correspondre à la nouvelle branche. Conseil: assurez-vous de copier au bon endroit !!!
  • Mettez VS en ligne
  • Il devrait trouver toutes les modifications et ajouter les nouveaux fichiers
  • S'il vous demande de lier le contrôle de source, assurez-vous que le chemin est correct pour la nouvelle branche.
  • Testez - puis archivez les nouveaux fichiers

Important: j'ai constaté que si vous ne mettez pas d'abord TFS hors ligne, vous vous retrouverez avec de nouveaux fichiers (à partir de votre ensemble de modifications unshelves) affichés sans une petite coche rouge et vous devrez exclure et incluez-les à nouveau pour les amener à ajouter. Si quelqu'un avait une solution alternative à ce problème, j'aimerais bien le savoir - le rafraîchissement ne semble pas fonctionner.

Les informations de plateau incluent le chemin spécifique auquel il se rend. Malheureusement, je ne connais pas de moyen automatique de découvrir un endroit autre que celui où il a été rangé. Les fois où je voulais faire cela, je devais extraire les fichiers équivalents de la nouvelle branche, unshelve de l’ancienne branche, puis les copier manuellement.

EDIT: Eh bien, je suppose que je le faisais à la dure. Je vais devoir essayer la solution de Curt. :)

J’ai passé beaucoup de temps à faire cela et j’ai eu peu de problèmes à surmonter. C'est possible mais ici peu de problèmes et peu de règles à suivre pour éviter ces problèmes

Erreur:

  

impossible de déterminer l'espace de travail

Ce problème particulier a été résolu en exécutant la commande à partir du dossier racine de la branche source . Ceci est contraire à certaines réponses sur les OS qui disent utiliser "cible". branche - non, utilisez "source":

cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"

Le deuxième numéro est apparu après cela. Apparemment, il ne pouvait pas se connecter au serveur TFS. Ce que j'ai réalisé, j'ai plusieurs VS installés et connectés à différents serveurs TFS. J'utilisais VS12 et j'avais un espace de travail et une connexion au serveur. Mais je n'avais pas réalisé que la même connexion devait être répliquée dans VS13 pour que TFPT2013 fonctionne. Il se connecte au même serveur et au même espace de travail.

J'ai également essayé de le faire avec TFPT2015, mais je l'ai installé et il n'a pas été installé. C'est pourquoi il était inutile. J'ai donc essayé de TFPT2013 à TFS2015 et cela a fonctionné pour cette commande particulière. Je me demande pourquoi pas si VS12 / 13 fonctionne bien contre TFS2015?

Pour résumer

  • Utiliser CMD ou DevCMD - cela n'a pas d'importance
  • commande d'exécution à partir du dossier racine de la branche source
  • vérifier la connexion Team Explorer Server pour un VS spécifique
  • TF Power Tools 2013 fonctionne avec TFS v15, au moins migrate fonctionne
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top