Qu'est-ce que le rayonnage dans TFS?

317

Le stockage dans TFS est-il simplement un enregistrement progressif pour que les autres membres de l'équipe puissent voir le code source?

c'est-à-dire que le code mis en attente ne sera pas compilé non?

Matthew Lock
la source

Réponses:

453

Les étagères ont de nombreuses utilisations. Les principaux sont:

  1. Changement de contexte : enregistrer le travail sur votre tâche actuelle afin de pouvoir passer à une autre tâche hautement prioritaire. Supposons que vous travaillez sur une nouvelle fonctionnalité, en vous occupant de votre propre entreprise, lorsque votre patron arrive et dit "Ahhh! Bug Bug Bug!" et vous devez supprimer vos modifications actuelles sur la fonctionnalité et corriger le bug. Vous pouvez suspendre votre travail sur la fonctionnalité, corriger le bogue, puis revenir en arrière et vous décompresser pour travailler sur vos modifications plus tard.
  2. Partage des ensembles de modifications : si vous souhaitez partager un ensemble de modifications de code sans l' archiver , vous pouvez faciliter l'accès des autres en le mettant en rayon. Cela peut être utilisé lorsque vous passez une tâche incomplète à quelqu'un d'autre (pauvre âme) ou si vous avez une sorte de code de test que vous ne vérifieriez JAMAIS que quelqu'un d'autre devait exécuter. h / t aux autres réponses sur l'utilisation de ceci pour les avis, c'est une très bonne idée.
  3. Enregistrement de votre progression : pendant que vous travaillez sur une fonctionnalité complexe, vous pouvez vous retrouver à un «bon point» où vous souhaitez enregistrer votre progression. C'est le moment idéal pour ranger votre code. Supposons que vous piratez du CSS / HTML pour corriger des bogues de rendu. Habituellement, vous frappez dessus, en répétant tous les coups possibles que vous pouvez imaginer jusqu'à ce qu'il semble correct. Cependant, une fois qu'il semble correct, vous voudrez peut-être essayer de revenir en arrière pour nettoyer votre balisage afin que quelqu'un d'autre puisse comprendre ce que vous avez fait avant de l'archiver. Dans ce cas, vous pouvez mettre le code en attente lorsque tout s'affiche correctement , alors vous êtes libre d'aller refactoriser votre balisage, sachant que si vous le cassez à nouveau accidentellement, vous pouvez toujours revenir en arrière et obtenir votre ensemble de modifications.

D'autres utilisations?

TJB
la source
16
Lors de la mise en rayon d'un ensemble de modifications, on peut soit conserver les modifications en attente localement (utile pour 2 ou 3) ou non (utile pour 1)
dumbledad
2
La documentation de Visual Studio sur les rayonnages contient des informations supplémentaires sur le contexte et la procédure.
Développeur holistique
1
Il est également utilisé par une génération Gated pour stocker les modifications jusqu'à ce qu'une validation finale puisse être effectuée.
Tore Østergaard
Une chose que j'ai remarquée est que les modifications apportées à Shelving ne restaurent pas nécessairement le code, ni ne modifient l'état des fichiers à archiver. votre code mis de côté?
Jacques
Je viens de réaliser que les fichiers restent extraits lorsque vous sélectionnez l'option pour conserver le jeu de modifications localement.
Jacques
105

Le stockage est un moyen d'enregistrer toutes les modifications sur votre boîte sans vous enregistrer. Les modifications sont conservées sur le serveur. À tout moment ultérieur, vous ou l'un de vos coéquipiers pouvez les "décompresser" sur n'importe laquelle de vos machines.

Il est également idéal à des fins d'examen. Dans mon équipe pour un enregistrement, nous mettons de côté nos modifications et envoyons un e-mail avec la description des modifications et le nom de l'ensemble de modifications. Les membres de l'équipe peuvent ensuite voir l'ensemble de modifications et donner leur avis.

FYI: La meilleure façon de revoir un étagère est avec la commande suivante

tfpt review / shelveset: shelvesetName; userName

tfpt fait partie de la Team Foundation Power Tools

JaredPar
la source
6
il convient de noter qu'il n'y aurait aucune raison aujourd'hui de suspendre manuellement les modifications et d'envoyer les informations par e-mail. Le processus moderne consiste à demander une révision du code.
ChiefTwoPencils
34

C'est vrai. Si vous créez une étagère, les autres personnes effectuant une mise à jour ne verront pas votre code.

Il place vos modifications de code sur le serveur, qui est probablement mieux sauvegardé que votre PC de travail.

Il vous permet de récupérer vos modifications sur une autre machine, si vous ressentez le besoin de travailler à domicile.

D'autres peuvent voir vos étagères (même si je pense que cela peut être facultatif) afin de pouvoir consulter votre code avant un enregistrement.

teedyay
la source
C'est vrai. Si vous créez une étagère, les autres personnes effectuant une mise à jour ne verront pas votre code. Cela signifie 1) lorsque je vérifierai le code dans TFS, le membre de mon équipe verra le code dans son système s'il obtiendra la dernière version? 2) Cela signifie donc par quel compte nous avons mis en attente le code, à partir du même compte seulement, nous verrons le code mis en attente? veuillez me corriger si je me trompe
Krish
Vous pouvez voir les étagères des autres si vous le souhaitez.
teedyay
3
Pour être plus précis, «les autres personnes qui font une mise à jour ne téléchargeront pas votre code»
sergiol
18

Un point qui est manqué dans beaucoup de ces discussions est de savoir comment revenir sur la même machine sur laquelle vous avez mis vos modifications en attente. Peut-être évident pour la plupart, mais pas pour moi. Je crois que vous effectuez une annulation des modifications en attente - n'est-ce pas?

Je comprends que le processus est le suivant:

  1. Pour mettre vos modifications en attente en attente, cliquez avec le bouton droit sur le projet, Shelve, ajoutez un nom d'étagère
  2. Cela enregistrera (ou Shelve) les modifications apportées au serveur (personne ne les verra)
  3. Vous effectuez ensuite Annuler les modifications en attente pour revenir à votre code au dernier point d'enregistrement
  4. Vous pouvez ensuite faire ce que vous devez faire avec la ligne de base de code inversée
  5. Vous pouvez annuler les modifications à tout moment (peut nécessiter une fusion de fusion)

Donc, si vous souhaitez commencer un travail dont vous pourriez avoir besoin pour Shelve, assurez-vous que vous vous enregistrez avant de commencer, car le point d'enregistrement est l'endroit où vous reviendrez lorsque vous effectuerez l'étape Annuler les modifications en attente ci-dessus.

Nick Wright
la source
8
Vous pouvez ignorer l'étape d'annulation des modifications en attente si vous désactivez la case à cocher «Conserver les modifications en attente localement» lors de la création du jeu d'étagères.
Michael J.
14

Je rencontre cela tout le temps, donc des informations supplémentaires concernant les succursales:

Si vous travaillez avec plusieurs branches, les étagères sont liées à la branche spécifique dans laquelle vous les avez créées. Donc, si vous laissez trop longtemps un ensemble de modifications rouiller sur l'étagère et que vous devez vous détacher d'une autre branche, vous devez le faire avec la version de juillet des outils électriques.

tfpt unshelve /migrate
joshua.ewer
la source
Hors sujet, mais vrai :-)
Tore Østergaard
2
Ce commentaire est si ancien qu'il a été ajouté avant que la réponse à un débordement de pile ne soit établie :-)
joshua.ewer
2

Le rayonnage est comme si vos modifications avaient été stockées dans le contrôle de code source sans affecter les modifications existantes. Signifie que si vous archivez un fichier dans le contrôle de code source, il modifiera le fichier existant, mais le stockage est comme stocker vos modifications dans le contrôle de code source sans modifier les modifications réelles.

MN Das
la source
1

@JaredPar: Oui, vous pouvez utiliser des étagères pour les avis, mais gardez à l'esprit que les étagères peuvent être écrasées par vous-même / par d'autres et ne sont donc pas stables à long terme. Par conséquent, pour les examens réglementaires pertinents, vous ne devez jamais utiliser un étagère comme base, mais plutôt un enregistrement (changeset). Pour un examen informel, c'est correct, mais pas pour un examen formel (par exemple, un ALE)!

Daniel
la source
0

Si vous utilisez des générations Gated, lorsqu'une génération est déclenchée, elle crée un ensemble d'étagères de votre espace de travail qui est soumis pour la génération. Si la construction échoue, l'étagère est rejetée. Si la génération réussit, un ensemble de modifications est créé et validé pour TFS. Dans les deux cas, la personne effectuant cet enregistrement / génération devra réconcilier l'espace de travail, ce qui est aussi simple que d'effectuer un Get Latest.

Jim Roth
la source