web-dev-qa-db-fra.com

Comment associer une demande de révision à plusieurs ensembles de modifications dans TFS 2012

Notre processus de développement fonctionne comme suit: toutes les deux semaines, le responsable de l'équipe (moi) intervient et examine les ensembles de modifications de chacun pour s'assurer qu'ils respectent les normes de codage. J'aimerais utiliser TFS 2012 pour aider à automatiser ce processus.

Il y a 2 problèmes avec ceci:

  1. Il n'y a aucun moyen de soumettre une révision de code non sollicitée. Je peux vivre sans cela si nécessaire, je suppose

  2. Il n'y a aucun moyen d'associer une révision de code à plus d'un ensemble de modifications. Ceci est un deal-breaker

J'ai lu un article qui disait qu'il était possible de lier les jeux de modifications à un élément de travail après le fait. Lorsque j'ouvre l'élément de travail pour la révision de la demande, l'onglet Liens apparaît. Cependant, lorsque je clique sur "Nouveau" ou "Lien vers ...", aucune option ne permet de créer un lien vers un changeset. Seule une option permet de créer un lien vers chaque type d'élément de travail dans le processus.

Est-ce que quelqu'un sait comment faire cela? Est-il prévu d'ajouter ces fonctionnalités à TFS?

Voici une capture d'écran:

No changeset option to be found... :(

28
Doug
  1. Non sollicité, non.
  2. Vous pouvez cliquer avec le bouton droit sur un jeu de modifications dans l'écran d'historique pour demander une révision après l'archivage.

Et il existe une mauvaise solution pour obtenir ce que vous voulez atteindre. Consultez tous les fichiers que vous souhaitez examiner et demandez une révision. Vous pouvez ensuite annuler votre commande, le rayon et la demande de révision resteront.

Sinon, vous pouvez simplement aller dans l'onglet Contrôle du code source et effectuer une extraction complète sur le dossier racine de votre solution, demander la révision, annuler votre extraction et l'exécuter.

Pour ce qui est de lier les jeux de modifications à un élément de travail, cela peut être fait après l'archivage. Ouvrez l’élément de travail, accédez à l’onglet Liens et cliquez sur "Lien vers ...". La liste déroulante présente une option "Changeset". Mais je ne pense pas que ce type de lien soit activé pour les demandes de révision de code, car celles-ci utilisent un ensemble Shelveset et non un ensemble de changesets comme source du code à réviser.

enter image description here

Je pense que vous pouvez utiliser l'API TFS pour générer un plateau avec toutes les modifications apportées par un développeur spécifique dans un intervalle donné, les placer sur un plateau et demander une révision à ce sujet. Mais aucune fonctionnalité existante pour faire cela n'existe.

Vous pouvez également modifier le plateau associé à la révision en en créant un nouveau portant le même nom.

10
jessehouwing

Une approche alternative:

1) au début du cycle de deux semaines, lancez le processus de révision du code et notez le numéro d'élément de travail créé. Il vous suffit de demander une révision de votre part sans modification de code au début.

2) Demandez à tous vos développeurs d’associer leurs entrées de contrôle pour les 2 prochaines semaines à cet élément de travail #

3) Lorsque vous êtes prêt à effectuer la révision, ouvrez simplement l’élément de travail et parcourez les ensembles de modifications.

Cela devrait accomplir ce que vous voulez.

1
Andrew Clear

Sur le point n ° 2, j’ai un moyen de contourner le problème qui consiste à combiner toutes les modifications d’un grand nombre de modifications en un shelveset pour vérification. J'ai essayé la méthode de paiement mentionnée ci-dessus et j'ai rencontré des problèmes, en partie parce que mon examen comportait environ 25 fichiers. Après les avoir archivés, TFS les a supprimés des modifications en attente, car je ne les actualisais pas, car aucun avis n'avait été modifié.

Premièrement, (en supposant que vos modifications sont déjà archivées et dans plusieurs ensembles de modifications), créez un espace de travail contenant les fichiers les plus récents sur un chemin d'accès au disque tel que D:\Latest ...

Créez un nouvel espace de travail "local" (appelé "Review"), associez le même projet à un chemin légèrement différent (par exemple, D:\Review ... ") pour obtenir tous les fichiers. Accédez à l'historique de ce projet et juste avant. votre plus ancien changeset, cliquez avec le bouton droit de la souris et sélectionnez "Obtenir cette version".

À ce stade, accédez à l'historique et annulez toutes les modifications apportées par une autre personne entre-temps, le cas échéant, si vous ne souhaitez pas participer à la révision, à moins que quelqu'un n'ait modifié un fichier commun. Laissez ceux-ci.

Au-delà de la comparaison, comparez "D:\Latest ..." à "D:\Review ...", copiez vos modifications de Latest to Review. Accédez aux fichiers communs et copiez uniquement les lignes à examiner. Lorsque Beyond Compare écrit les modifications, TFS les détecte et place le fichier que vous enregistrez dans la liste des modifications en attente pour l'espace de travail "Révision". (C'est une caractéristique des espaces de travail locaux.)

À ce stade, il vous suffit de ranger vos modifications en attente dans l'espace de travail "Révision" et de demander une révision sur ce plateau.

0
SteveSims

Option n ° 3

[ Je suppose ici que les ensembles de modifications que vous essayez d'associer à une révision de code unique sont consécutifs, par exemple 20001: 20010 ]

  1. Je "ai restauré [ed] vers un changeset spécifique" (dans mon exemple ci-dessus 20001). Je vérifie dans les modifications. Le code est maintenant dans son état d'origine.

  2. Ensuite, je "suis retourné à un ensemble de modifications spécifique" (dans mon exemple au-dessus de 20010) et l'enregistre à nouveau. Le code est maintenant dans son état final.

  3. Enfin, je demande un examen de la dernière révision. Cette revue compare les deux derniers commits - ceux que j'ai créés à partir de la restauration.

En bonus, vous pouvez comparer des changesets spécifiques dans la page d'historique. Vous pouvez utiliser cette comparaison pour vous assurer que les commits ci-dessus ont bien rétabli le code en révision 20001 et 20010.

0
KlingonJoe