J'ai donc une situation où nous avons un projet avec 10 développeurs. Chaque développeur, lorsqu'il est arrivé pour la journée, est émis au hasard une machine à utiliser pour le développement ce jour-là. Les noms de la machine sont différents, disent Dev01 - Dev10. Au moment où ils sont délivrés aux développeurs, les machines sont identiques et aucune modification des développeurs effectue pendant la journée sont persistées sur les machines (les modifications de code source sont stockées dans TFS, non localement). Celles-ci sont bien sûr en réalité des machines virtuelles, mais ce n'est pas vraiment pertinent pour le point de vue. P>
Le problème est que chaque matin, les développeurs rencontrent 3 numéros: p>
1) strong> La machine à laquelle ils sont attribués peut ne pas être la même machine qu'ils ont été attribuées à la dernière. Par exemple, Devman A pourrait avoir utilisé Dev04 hier et reçu Dev06 aujourd'hui. Ses définitions d'espace de travail sont maintenant liées à Dev06; Il doit créer un nouvel espace de travail ou migrer l'ancien espace de travail sur Dev04. P>
2) strong> La machine à laquelle ils sont attribués peuvent avoir été utilisés hier et certains des mappages peuvent en conflit. Par exemple, Devman A pourrait avoir Dev04 aujourd'hui et souhaiter la création d'un espace de travail mappant le dossier de projet sur "C: \ MyProj \ Solution". Cependant, Devman B eut Dev04 hier et il a utilisé le même dossier de projet. TFS se plaint maintenant. P>
Tous ces problèmes peuvent être résolus de manière simple au cas par cas, mais il sève une certaine productivité de la matinée. Nous préférerions grand chose si les définitions de l'espace de travail TFS pourraient être «détendues», de sorte qu'ils n'incluaient pas le nom de la machine dans la définition d'une manière ou d'une autre. Sauf que, si quelqu'un est au courant d'une solution aux problèmes ci-dessus pouvant exécuter automatiquement ou avec une intervention de l'utilisateur limitée, ce serait également idéal. p>
4 Réponses :
Vous pouvez placer l'espace de travail sur un lecteur réseau partagé, de sorte que cela n'a pas d'importance de la machine (virtuelle ou autre) que le développeur est connecté. Cela fonctionne bien, mais vous devrez également configurer des trucs com une fois em> pour le garder heureux. P>
Si vous liez la racine à (dites) p: \ dev \ users \ my.name \ tfs une fois sur chaque machine, vous avez terminé.
Les fichiers peuvent être sur réseau mais l'espace de travail doit être créé par PC que vous travaillez sur
@Perica: C'est correct. Vous devriez le lier une fois sur chaque machine.
1.) Pour chaque poste de travail sur lequel vous allez travailler, vous devez définir un espace de travail (télécommande Cartographie locale). Vous pouvez stocker des fichiers source sur le réseau (ne le recommandez pas cela en raison de la mise en cache VS), mais une zone de travail locale (définition de mappage) doit exister sur un PC spécifique pour un utilisateur spécifique.
2.) Créez des dossiers locaux distincts par développeur pour empêcher Nérum de différentes personnes travaillant sur le même dossier et deviennent les plus récentes sur le code de départ des autres. Par exemple: P>
c:\Projects\DevManA\TFSProject1\.. c:\Projects\DevManA\TFSProject2\.. c:\Projects\DevManA\TFSProject3\..
@Richard C'est pourquoi j'ai dit que cela peut causer des discussions: D True de manière, mais dans la pratique, vous avez une situation que tous les développeurs ne travaillent pas sur tous les projets TFS (c'est un filtre). Même si vous travaillez sur un grand projet, que la bonne pratique est (encore une fois de danger pour augmenter les discussions: d) avoir une branche de développement + des branches de libération (un autre filtre) et dans la branche de votre développeur, des solutions séparées pour garder le code bien organisé (encore un autre filtre ). Ainsi, après tous ces filtres, le développeur travaille dans une à deux solutions par jour et n'a pas besoin de "obtenir" plus que cela.
True, Les développeurs I> n'ont généralement pas besoin de travailler sur de grands sous-arbres, mais TFS ne le sait pas. Par conception, toutes les commandes TFS fonctionnent contre l'espace de travail complet à moins que vous spécifiez un filtre de chemin. Si vous jamais b> oubliez de le faire, les effets secondaires peuvent aller de la confusion à la surcharge de serveur aux bogues de correction réelle. Par exemple: tout en vérifiant dans un petit bugfix à la succursale 1, vous valez accidentellement une grosse changements incomplets incomplets en attente dans la branche 2 (mais partagé le même espace de travail). Je l'ai fait :(
Premièrement, la réponse extrêmement évidente consiste à dédier des machines aux utilisateurs. P>
Deuxièmement ... Si vous voulez vraiment résoudre le problème comme indiqué: P>
Vous ne pouvez pas utiliser les espaces de travail sans les attribuer à une machine spécifique. Cette hypothèse est implicite dans le produit. Mais vous pouvez le tromper :) Maintenant, lorsque l'utilisateur ouvre un studio Visual Studio, l'espace de travail utilisera la valeur spécifiée "useridvm" comme nom de la machine, ainsi que le même espace de travail sera trouvé sur chaque machine. P>
Si vous n'avez pas de disque dur virtuel persistant, chaque utilisateur doit être sûr de faire une «vraie» «Obtenir la dernière» (obtenir une version spécifique, cochez toutes les cases) lors du début de la journée car l'espace de travail mémorise quoi Les fichiers ont déjà été téléchargés et ne les téléchargeront pas si elles sont déjà existantes. P>
Donc cluster_network_name i> est une variable d'environnement reconnue par TFS comme remplacement du nom de la machine?
Oui. Plus spécifiquement, il est reconnu par Windows OS en tant que dérogation locale au nom d'hôte. Et TFS utilise probablement une nom d'hôte.
Cela semble fonctionner assez bien conjointement avec un script au démarrage pour définir la variable env de chaque utilisateur.
Je ne sais pas si cela répondra aux exigences énoncées dans la question, mais vous pouvez vérifier cela: p>
http: //blogs.msdn .Com / Granth / Archive / 2009/11/08 / TFS2010-Public-Workspaces.aspx P>
TFS 2010 a ajouté des espaces de travail publics / partagés qui peuvent être utilisés par plusieurs utilisateurs sur la même machine. P>
La vraie réponse est la suivante: ne le faites pas de cette façon. Les travaux autour consiste à utiliser des appels de ligne de commande pour configurer les espaces de travail pour chaque ordinateur et utiliser le suget de dossiers de mappage @ Perica-Zivkovic.
Qu'est-ce que c'est le genre d'affaires, est-ce? Je ne pense pas que cela soit propice à écrire un bon code, mais si cela fonctionne pour votre équipe, tout l'homme de Merrier!
@Drachenstern: Je sais que c'est très tard, mais de nombreuses entreprises opèrent de cette manière pour les entrepreneurs ou les équipes offshore pour gérer des ressources très couramment et pour des raisons de sécurité. C'est une configuration très légitime.
@Sv hooligan ~ OK, bien sûr. Je pense toujours qu'il est retardé de mettre des développeurs de haute qualité dans un bullpen ouvert et de les mélanger tous les jours. Avec stockage Le prix C'est aujourd'hui, il n'y a aucune raison pour laquelle vous ne pouvez pas coller les environnements de développement dans un SAN local et les exécuter en tant que VMS, affectant un VM dédié à un développeur. Je suppose que je ne comprends pas comment réaffecter des développeurs et des postes de travail varient quotidiennement dans un environnement productif.
@Drachenstern: aucun argument là-bas.