J'utilise VS2013 Update 4 avec TFS 2013 Update 4. Dans Source Control Explorer, chaque fois que je déplace un fichier d'un dossier à un autre, je constate que l'historique du fichier est conservé au nouvel emplacement. Cependant, cet historique a disparu lorsque j'archive les modifications en attente. La même chose se produit lorsque j'essaie d'exécuter la commande "tf move". Alors, comment pouvez-vous déplacer un fichier dans TFS tout en conservant l'historique du fichier?
Lorsqu'un fichier est renommé correctement, l'historique n'est pas "parti", il est associé à "l'ancien nom". Un changement de nom effectué correctement (suivi comme changement de nom et non comme suppression/ajout) comporte une option d'exploration pour afficher l'historique "plus ancien":
Lorsqu'un changement de nom est effectué en dehors de l'Explorateur de contrôle source (ou à partir d'une très ancienne version de l'Explorateur de contrôle source (par exemple, VS 2008)) ou en dehors de l'Explorateur de solutions, la modification est détectée sous la forme de deux actions individuelles, une supprimer et un ajouter . Vous pouvez utiliser la fenêtre "Modifications en attente" pour les promouvoir en les renommant de manière à conserver l'historique:
Sur la ligne de commande, cela ne peut être accompli qu'avec "tf rename" et "tf move". L'utilisation des commandes standard "mv" et "ren" échouera à préserver l'historique.
Vous trouverez ci-dessous un autre exemple d'utilisation de toutes les méthodes et montrant clairement que l'historique est préservé en consultant l'historique du nom de fichier actuel:
Comme mentionné dans les commentaires, l'historique est stocké dans le projet d'équipe qui contient la révision des éléments. Lorsque vous modifiez/déplacez des projets, votre historique sera réparti entre ces projets. Si vous supprimez un projet d'équipe, tout l'historique accumulé dans ce projet sera perdu.
Je suis venu à cette question de cette question .
Le problème existe depuis TFS2010 et ne concerne pas uniquement les fichiers renommés ou déplacés, mais également les dossiers renommés ou déplacés. Le pire, s’il s’agit d’une branche renommée puis de l’historique des dossiers. Ensuite, vous ne trouvez que votre changeset renommé.
Ici , vous pouvez voir la réaction de MS sur cette tâche. En gros, ils disent ne pas le faire parce que cela demande beaucoup de travail et ralentit l’histoire.
Je ne pouvais pas vivre avec ce fait et programmé un correctif pour cela. La sélection d’historique récursive a lieu dans SP _ {dbo.prc_QueryHistory. J'ai changé le SP et ajouté les fonctionnalités suivantes:
L'effet est un historique plus lent (surtout si vous le faites à la racine d'une arborescence de dossiers profond), mais le problème est résolu. Et je vis plutôt avec une histoire lente qu'avec une histoire incomplète.
Je pourrais vous fournir le SP que j'ai écrit, mais je ne sais pas si je serais autorisé à le publier ici, car il contient du code protégé par MS. (Et bien entendu, je ne peux pas garantir que le correctif persistera lors de la mise à jour du système. - J'ai écrit mon SP sur un SP3 2013 de TFS.)
Mise à jour: J'ai demandé à MS l'autorisation de publier mon correctif (2e lien de mon message)
Je ne pense pas que le correctif jessehouwing fonctionne pour les dossiers. En fait, si vous utilisez Source Control Explorer de VS 2012+, le déplacement des dossiers préserve l'historique des fichiers (affiche récursif dans VS), mais pas pour les dossiers. L'historique des dossiers est plat.
La solution à ce problème: