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 GUI ou Invite de commande)
Le Visual Studio Power Tools devrait 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 tableaux appelé "Nom de groupe" créé sur Branch1 à Branch2, utilisez ceci:
>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"
Solution alternative au 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 et je n'avais jamais confiance en le bouton de "fusion automatique" et je ne voulais pas parcourir chaque fichier à la fois - je devais donc trouver un autre moyen!
C:\temp\shelveset-name
(Remarque: il n’ya 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 sont toujours en cours de pense que c'est gelé).
Il ne vous reste plus qu'à les copier dans la nouvelle branche avec Windows Explorer.
Cela a fonctionné pour moi:
c:\temp\shelveset-name
devra être renommée pour correspondre à la nouvelle branche. Astuce: Assurez-vous de copier au bon endroit !!!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 jeu de modifications unshelves) affichés sans une petite coche rouge et vous devrez les exclure et les réinclure. pour les amener à ajouter. Si quelqu'un avait une solution alternative à ce problème, j'aimerais bien le savoir - rafraîchir ne semble pas fonctionner.
Les informations de plateau incluent le chemin spécifique auquel il se rend. Malheureusement, je ne connais aucun moyen automatique de se déplacer à 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'avais 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:
incapable de déterminer l'espace de travail
Ce problème particulier a été résolu en exécutant la commande à partir du dossier racine source branch. Ceci est contraire à certaines réponses sur SO où ils disent d'utiliser la branche "cible" - 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 aussi essayé de le faire en utilisant 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?
Résumer