Je travaille avec une équipe de programmeurs en tant qu'analyste d'entreprise. Nous venons de publier la version 2.0 de notre produit et travaillons sur la prochaine version qui sortira dans 3 mois (c'est un logiciel interne). Malheureusement, la version 2.0 présente des problèmes qu’ils ont dû résoudre et nous allons les déployer dans quelques semaines. Le problème est que nous ne souhaitons pas non plus déployer les modifications sur lesquelles nous travaillons et ne sommes pas prévues pour être publiées avant 3 mois.
Les programmeurs ont décidé que le moyen de gérer cela était que seul le code des défauts soit archivé et que le code des nouvelles améliorations soit conservé sur les machines locales du développeur jusqu'à leur exécution. Je vais devoir tester les versions locales de leurs machines car s'ils enregistrent le code et que nous devons installer un autre correctif pour corriger les défauts, nous ne voulons pas inclure ces améliorations pour l'instant. Il existe également le problème suivant: le même fichier de code contient à la fois des correctifs et des améliorations. Ils doivent donc copier le fichier de code localement, puis apporter une modification pour corriger un bogue et le vérifier, puis reprendre le travail sur les améliorations en prenant le copie locale ils ont fait.
Cela semble assez compliqué - existe-t-il une meilleure façon de gérer ce type de scénario? Nous utilisons Team Foundation Server et Visual Studio 2010.
Réponses:
Ce que nous utilisions, la V2.0, aurait dû être appelé une "branche à l'état stable" (nous avons utilisé Perforce, pas TFS) une fois qu'elle a été publiée. Tous les correctifs pour la v2 auraient été apportés à cette branche, puis propagés dans la branche de développement v3 alors que les fonctionnalités de la v3 étaient également en cours d’exploitation, c’est-à-dire qu’un défaut de la v2 entraînerait également un défaut de la v3.
Avoir des modifications sur les machines du développeur pendant longtemps entraînera probablement un cauchemar d'intégration.
la source
Eh bien, il existe de nombreuses manières de traiter de tels problèmes, généralement couvertes par une balise 'branching' , chacune avec ses propres avantages et inconvénients.
Mais approche choisie par vos développeurs ... Je vais le citer verbalement pour m'assurer que je n'ai pas mal interprété ...
... le chemin comme ci-dessus est probablement le seul qui soit totalement, complètement faux!
Pour moi, ce qui est criminel au plus bas, c’est que, pour TFS, il existe un excellent guide facile à comprendre, intitulé Guide de branchement de Microsoft Team Foundation Server - document volumineux et détaillé contenant des recommandations de stratégies de branchement soigneusement adaptées et expliquées pour tous types de projets ( version HTML ici ).
la source
modifier
Vous n'agissez pas en tant que référentiel d'équipe de facto. C’est pour la gestion de votre propre travail, les efforts de refactoring, etc., et pour que vous restiez en tant que membre de l’équipe continue de faire évoluer la base de code de FUBAR.
fin éditer
la source
Ce que vous décrivez est un moyen terrible d’utiliser le contrôle de version. Il aurait dû y avoir une branche créée pour la version 2.0, une balise ou un identifiant. De cette façon, les modifications apportées à cette version peuvent être contenues et de nouveaux développements peuvent continuer.
Cet article peut vous donner quelques idées. C'est écrit avec l'
git
esprit, mais il n'y a aucune raison pour que cela ne fonctionne pasmercurial
aussi bien. Je me rends compte que vous n'utilisez ni l'un ni l'autre, mais c'est aussi un problème que vous devriez envisager de résoudre.la source
Réponse rapide: l'équipe de développement doit disposer d'une branche de production distincte pour que le déploiement de la base de code V2.0 soit séparé du tronc principal .
Toutes les corrections de bogues doivent d'abord être effectuées dans cette branche, puis testées et déployées dans d'autres branches, afin de maintenir le code synchronisé .
Votre projet doit également avoir plusieurs environnements
for health development
tels que Prod, Staging, QA et Dev (parfois UAT). Ces environnements doivent être configurés avant de passer à la version de production.Dans l’ensemble, être prêt pour les bogues et les modifications est le moyen de prendre en charge une application publiée.
Comme TFS a été mentionné en tant que contrôle de version, j'ai également compilé une liste d'articles qui seront utiles pour définir un ou plusieurs environnements de développement pour la santé:
la source
Non, car lorsque vous utilisez un VCS, vous ne faites pas de contrôle de version.
Le concept central du contrôle de version consiste à suivre les différences dans le temps. Vous planifiez d'enregistrer certaines différences, mais pour le moment, la plupart de vos modifications ne sont pas enregistrées.
Comme d'autres l'ont dit, vous devriez utiliser des branches. Une fois cette configuration configurée, vous devriez vérifier toutes les modifications fonctionnelles (c’est-à-dire non pas chaque frappe, mais chaque fois que vous corrigez un bogue, ajoutez une fonctionnalité, supprimez une fonctionnalité ou apportez une autre modification de sorte qu’elle soit toujours construite et fonctionne).
la source
Je suis un développeur et on nous donne un code de branche et une base de données différents pour les correctifs de la version actuelle et un autre pour les améliorations et les versions ultérieures consécutives.
Une fois que nos correctifs sont terminés, ils sont fusionnés avec la production et sont déployés, nous obtenons une nouvelle branche pour fonctionner à nouveau avec des améliorations.
De plus, nous suivons une pratique comme si j’avais 10 correctifs pour ma version actuelle
J'écris comme
De même pour d'autres correctifs, je le fais simplement pour chaque ligne que je modifie ou ajoute pour la correction. Et juste comparer et commettre. De la même manière, s'ils faisaient en parallèle sur la même branche, ils peuvent utiliser
Ctrl+Shift+F
La commande et le type//Start Iteration 2, Fix No-1, Branch No-"ABC"
de recherche dans la solution complète aide beaucoup à trouver les emplacements exacts, les fichiers dans lesquels le code est modifié et prendre du code frais, seule cette partie peut être utilisée pour la validation.la source