2010-02-09 13 views
12

Actuellement, je travaille sur un projet qui utilise TFS comme contrôle de source. Je suis en train de mettre en œuvre une fonctionnalité, mais je suis bloqué par le travail qui doit être fait par des ressources externes. Puisque la fonctionnalité n'est pas complètement terminée, je ne peux pas vérifier les changements sans casser la construction. Donc, au lieu d'attendre quelques jours pendant que le travail de blocage est terminé, je veux travailler sur certains défauts. Pour ce faire, indépendamment des autres changements, je travaille sur les défauts dans un second espace de travail que je viens de créer. Après avoir utilisé un deuxième espace de travail pour isoler mes changements, un collègue m'a demandé pourquoi je ne mettais pas mes modifications à l'écart. Après avoir fait quelques lectures sur les étagères, il semble que ce soit la solution préférée à des situations comme la mienne. Ma question est de savoir quelles situations, le cas échéant, pourriez-vous créer plusieurs espaces de travail et quelles situations devriez-vous utiliser des étagères? Il y a quelques articles sur shelving, mais je ne vois pas beaucoup sur le sujet des espaces de travail. Par ailleurs, j'ai eu l'idée de créer un deuxième espace de travail here.Rayonnage contre espaces de travail dans TFS

Répondre

11

Une nouvelle branche serait probablement la meilleure voie à suivre. Mais, pour répondre à votre question, l'une des principales différences entre la mise en rayon et l'utilisation d'un espace de travail differnet est que lorsque vous mettez à l'écart, vous remettez votre code à TFS, il est donc sauvegardé. Tout ce qui est dans votre espace de travail est exactement ce que vous avez sur votre machine - si vous le perdez, c'est parti.

Nous utilisons beaucoup de branches dans mon magasin, et par conséquent, je n'ai pas vu beaucoup d'utilisations pour les étagères.

Cependant, j'ai trouvé un cas où cela m'a été très utile: Je rebondis souvent entre 2 machines de développement différentes (une au bureau, une à la maison, connectée via VPN). Si je travaille sur quelque chose, et que je veux le transférer de la maison au travail, ou vice-versa, j'utilise souvent des étagères. Je peux la mettre de côté d'une machine et la mettre à l'écart de l'autre. Je fais ceci quand je suis au milieu d'un changement, et l'enregistrement casserait la construction ou autrement interromprait d'autres développeurs.

+0

Ah, donc je devrais au moins mettre mes modifications sur mon espace de travail original pour sauvegarder les changements. Aussi, bon point sur l'utilisation de rayonnage pour déplacer les changements entre les PC. Je pourrais voir que c'est très utile. – JChristian

1

L'étagère est l'option idéale. Le rayonnage vous permet d'effectuer des modifications en masse dans TFS en dehors de la construction normale, et de les récupérer plus tard par leur nom. Plusieurs espaces de travail ne sont pas une solution pour ce que vous faites. Plusieurs espaces de travail sont utiles si vous gérez différentes versions d'un produit et que vous devez y travailler, par ex. Disons que vous avez un produit 4.0 et 5.0 et que vous devez appliquer un correctif de sécurité aux deux versions. Les rayonnages sont parfaits lorsque vous voulez apporter des modifications sans les engager immédiatement.

+0

La branche n'est-elle pas utilisée pour travailler sur plusieurs versions? Ou un individu aurait-il un espace de travail séparé pour chaque branche? – JChristian

+0

Oui, mais vous utiliseriez des espaces de travail différents pour accéder à chaque branche. –

3

Vous parlez ici de deux concepts complètement différents. Lorsque vous stockez du code, vous l'enregistrez dans TFS, mais pas dans une branche particulière. La création d'un espace de travail différent configure simplement un nouveau dossier local sur vos machines de développement et enregistre les fichiers dans votre branche. Lorsque vous faites un check-in, vous pouvez toujours avoir des conflits. Pourquoi ne pas créer une nouvelle branche de votre code. Vous pouvez travailler sur cette branche et vous enregistrer sans intervenir sur les modifications de quelqu'un d'autre, car vous vous connectez à votre propre branche du code. Ensuite, lorsque vous avez terminé vos modifications et que d'autres ont terminé leurs modifications dans la branche principale, vous pouvez fusionner vos modifications dans la branche principale.

+0

Je n'avais pas pensé à créer une autre branche. Suggérez-vous que j'aurais dû créer une seconde branche pour la fonctionnalité bloquée sur laquelle je travaillais et ensuite utiliser la branche principale pour travailler sur les défauts? – JChristian

+1

@JChristian - Je ne dis pas que vous devriez avoir. Mais une alternative aurait été de créer une branche sur laquelle vous pouviez travailler, ou de travailler sur les ressources extérieures, puis de les fusionner lorsque vous avez terminé. Je l'ai souvent fait quand je travaillais sur la prochaine version d'une application, si les changements que je vais apporter à la version actuelle sont importants, et je voulais travailler dessus de manière isolée. –