Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

[TFS] Mise sur étagère: “I’m a shelf for you”

Il faut le dire: la mise sur étagère ou “shelving” n’est pas la fonction la plus connue de TFS. Et pourtant on l’a déjà vu, elle peut être très utile. Voic un tour d’horizon de ce que l’on peut faire avec cette fonction. Voila comment cela marche: la mise sur étagère sauvegarde vos fichier en édition (d’un workspace) sur le serveur, sans faire de check-in!  Faire du shelving, c’est aussi simple (voire même plus) qu’un check-in. Pour réaliser une mise sur étagère ou récupérer du code mis de coté de cette façon, il suffit d’aller ici:

image

 

Lorsque je clique sur “Shelve”, j’obtiens cette fenêtre:

image

C’est là que le shelving est différent du check-in: nous avons la possibilité, une fois le shelveset créé, d’annuler automatiquement les modifications en cours! Nous allons y revenir un peu plus loin.

Regardons l’opération inverse:

image

On remarques quelques éléments intéressants:

  • Un peu utiliser un shelveset d’une autre personne,
  • On peut avoir plusieurs shelvesets,
  • Derrière le bouton “Details…”, on a la possibilité de corrigurer l’option d’un shelveset avec par exemple la possibilité de l’effacer une fois la récupération effectuée.

Voici quelques informations importantes à connaître pour cette opération de restauration d’un shelveset:

  • Il vaut mieux ne pas avoir de fichier en check-out car “unshelve” ne peux pas faire de merge
  • Les fichiers sont restaurés avec  comme version courante celle qui était utilisé par le fichier lors du shelving (normal finalement). Ce qui veut dire que vous aller avoir des fichiers en édition mais qui ne sont pas associés à la latest: donc attention lors de la compilation, un “get latest” est nécessaire pour faire le merge puis le check-in (dans cet ordre c’est plus simple):

image

 

Alors que faire de cette fonctionnalité?

  • S’en servir pour passer du code à une autre personne lors d’un développement à plusieurs,
  • Sauvegarder son travail régulièrement sans avoir à faire de check-in: par exemple un shelveset par jour. Via la ligne de commande de TFS, il est possible de programmer le planificateur de tâche pour faire le boulot pour nous:  par exemple  une mise sur étagère appellé “sauvegarde du soir” sera automatiquement remplacée au jour le jour:  si au moment du shelving, un shelveset existe déjà avec le même nom il sera remplacé,
  • Vous être en train de travailler et un incident urgent apparait. Au lieu d’annuler le code ou pire faire un check-in d’un code à moitié terminé, le shelving nous permettra de revenir en arrière le temps de la correction,
  • Plus rien ne marche, et vous voulez revenir en arrière pour voir si le comportement est le même avant que vous décidiez “d’optimiser les algos”  sans perdre vous modifications.

Il n’est pas possible directement avec le Team Explorer de restaurer du code mise sur étagère dans une autre branche, mais les power tools via la ligne de commande “tpft unshelve /migrate” le gèrent. Un dernière point: comme le shelveset est lié à une version spécifique du code, plus on attend pour le restaurer, plus il devient compliqué de le faire, un peu comme une vieille branche que l’on oublie de merger.

 

@+

Publié lundi 21 mars 2011 09:00 par Miiitch
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: [TFS] Mise sur étagère: “I’m a shelf for you”

Cette fonction est la fonction qui me manque le plus quand je bosse sur svn ou autre :)

C'est carrément pratique !

lundi 21 mars 2011 09:12 by Troborg

# re: [TFS] Mise sur étagère: “I’m a shelf for you”

Je ne vois pas trop la différence entre un shelving, et la création d'une branche locale sur un DVCS comme GiT ou Mercurial. Sauf que la branche locale pourra être facilement mergée ensuite.

En fait tel que je comprends le shelving, ca me semble une fausse bonne idée: on prend facilement un instantané du code, mais on explose complètement l'organisation et l'intérêt d'un VCS, suivi des révisions incluses.

@Troborg, si ma compréhension du shelving est correcte, alors utilise GiT pour bosser sur SVN ! En décentralisé tu peux garder ton code de côté, faire des branches de test, merger tout ça et ne committer que ce que tu juges abouti, tout en ayant localement un suivi de révision.

lundi 21 mars 2011 10:06 by Graveen

# re: [TFS] Mise sur étagère: “I’m a shelf for you”

TFS n'est pas un DVCS donc il n'y a pas de branche locale, même si en poussant un peu on pourrais dire qu'un workspace est une sorte de branche locale. La fonctionnalité de base  du shelving n'est pas de remplacer une branche mais de fournir un moyen de stocker sur le serveur (donc pas en local), un emsemble de modification que l'on n'est pas prêt à archiver. Il n'y a aucune interaction avec l'historique des fichiers car le shelving ne fais que replacer les fichiers dans un état d'édition déterminé: version d'origine + modification.

lundi 21 mars 2011 13:13 by Miiitch

# re: [TFS] Mise sur étagère: “I’m a shelf for you”

Merci, c'est effectivement plus clair.

lundi 21 mars 2011 15:12 by Graveen
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- « Naviguer vers le haut » dans une librairie SharePoint par Blog de Jérémy Jeanson le 10-07-2014, 13:21

- PowerShell: Comment mixer NAGIOS et PowerShell pour le monitoring applicatif par Blog Technique de Romelard Fabrice le 10-07-2014, 11:43

- ReBUILD 2014 : les présentations par Le blog de Patrick [MVP Office 365] le 10-06-2014, 09:15

- II6 Management Compatibility présente dans Windows Server Technical Preview avec IIS8 par Blog de Jérémy Jeanson le 10-05-2014, 17:37

- Soft Restart sur Windows Server Technical Preview par Blog de Jérémy Jeanson le 10-03-2014, 19:43

- Non, le certificat public du CA n’est pas un certificat client !!! par Blog de Jérémy Jeanson le 10-03-2014, 00:08

- Windows Server Technical Preview disponible via MSDN par Blog de Jérémy Jeanson le 10-02-2014, 19:05

- Focus Sauvegardes SharePoint par Le blog de Patrick [MVP Office 365] le 10-02-2014, 13:11

- Technofolies, votre évènement numérique de l'année par Le Blog (Vert) d'Arnaud JUND le 09-26-2014, 18:40

- Xamarin : From Zero to Hero par Fathi Bellahcene le 09-24-2014, 17:35