Bonne convention de dénomination pour les branches nommées dans {DVCS} de votre choix

16

Nous intégrons Mercurial lentement dans notre bureau et en faisant du développement Web, nous avons commencé à utiliser des succursales nommées.

Nous n'avons pas tout à fait trouvé une bonne convention en ce qui concerne le nom de nos succursales.

Nous avons essayé:

  • FeatureName (peut voir cela causer un problème sur toute la ligne)
  • DEVInitial_FeatureName (pourrait devenir déroutant lorsque le développeur va et vient sur la ligne)
  • {uniqueID (int)} _ Fonctionnalité

Jusqu'à présent, l'unique ID_featureName gagne, nous pensons le conserver dans une petite base de données juste pour référence.

Il aurait: branchID (int), featureName (varchar), featureDescription (varchar), date, who etc ...

Cela nous donnerait des branches comme: 1_NewWhizBangFeature, 2_NowWithMoreFoo, ... et nous aurions une référence facile sur ce que fait cette branche sans avoir à vérifier le journal.

Une meilleure solution là-bas?

jfrobishow
la source

Réponses:

14

Si vous ne disposez pas d'un outil de suivi des problèmes, je vous recommande d'en configurer un puis d'utiliser {issue tracker name} _ {ticket number}. Lorsque quelqu'un dépose un bogue dans des années et que vous ne savez pas exactement comment la fonctionnalité était censée fonctionner, il sera facile d'annoter le fichier et de revenir là où l'utilisateur peut avoir demandé cette fonctionnalité exacte.

Asa Ayers
la source
D'accord, nous avons un bugtracker et prévoyons d'utiliser le bugID dans le nom de la branche pour corriger les bogues. Ma question était plutôt pour un développement totalement nouveau, quand vous ne réparez rien mais ajoutez quelque chose de totalement nouveau. Je suppose que nous pourrions créer un ticket d'amélioration stupide et partir de là.
jfrobishow
5
Vous devez absolument créer des tickets pour de nouvelles fonctionnalités. Les travaux sont également à suivre. +1 pour avoir demandé un identifiant unique.
AShelly
Si vous vous assurez de mettre tous les détails des nouvelles fonctionnalités dans le tracker, quelqu'un pourra vérifier plus tard si cela fonctionne comme prévu ou s'il y a vraiment un bug. Je travaille dans une équipe de développement qui maintient un programme de 5 ans et plus. Il y a des moments où le client dépose un bogue et lorsque nous le recherchons, nous constatons qu'il fonctionne comme prévu et que le développeur d'origine et le demandeur d'origine ont tous deux disparu. Nous avons des situations similaires où nous ne savons pas pourquoi quelque chose est ainsi et si les fonctionnalités n'étaient pas dans le tracker, nous n'aurions aucun moyen de le savoir.
Asa Ayers, du
2

Je suggère de rester simple et de nommer les branches selon la FeatureName(ou feature-name) convention. Oui, cela signifie un espace de noms partagé, mais c'est rarement un problème dans le monde réel. Une fois qu'une fonctionnalité est terminée et complètement fusionnée dans la ligne principale, la branche peut être supprimée en toute sécurité.

L'idée principale du contrôle de version distribué est qu'il devrait être facile de créer des succursales, l'introduction d'une bureaucratie supplémentaire, comme l'identifiant unique obligatoire, ne fera que rendre cela plus difficile.

Adam Byrtek
la source
1
Je suis d'accord, c'est la voie à suivre. Dans quel monde auriez-vous jamais autant de branches que vous ne pouvez pas éviter la collision?
alternative
Assez juste, obtenir une description liée au nom, je suppose, est plus important pour nous ... le commit initial devrait le contenir, mais je ne connais aucun moyen d'extraire cela rapidement.
jfrobishow
1
Dans un grand environnement d'entreprise, laisser les développeurs inventer des noms de fonctionnalités causera tôt ou tard des maux de tête.
AShelly
1
Je vois, car dans "un grand environnement d'entreprise" les développeurs ne peuvent pas faire confiance. Mais attendez, ils composent également des noms pour les variables, les fonctions et les fichiers. Nous devrions également créer un comité pour contrôler cela! (ironie)
Adam Byrtek
2

Je recommande d'utiliser un tel formulaire (comme exemple):

BUG_ID
ID BOGUE
ID DE BILLETS
ID DE BILLETS
feature_bla-bla-bla
release-x.xx.xx
release_x.xx.xx
build_2010-20-12
build_4565
BRANCH_x.xx.xx

Sélectionnez simplement les bons préfixes (pour permettre la sortie du filtre à partir des branches hg ), la règle de mise en majuscule et le délimiteur entre le préfixe et l'ID / les noms.

gavenkoa
la source
+1 nous avons choisi BUGID_ {freeCamelCasedTextDescription} à la fin.
jfrobishow