Gute Namenskonvention für benannte Zweige in {DVCS} Ihrer Wahl

16

Wir integrieren Mercurial langsam in unser Büro und beginnen mit der Webentwicklung, indem wir benannte Zweige verwenden.

Was die Benennung unserer Filialen angeht, haben wir noch keine gute Konvention gefunden.

Wir haben es versucht:

  • FeatureName (Kann das Problem auf der ganzen Linie sehen)
  • DEVInitial_FeatureName (Kann verwirrend werden, wenn Entwickler kommen und gehen)
  • {uniqueID (int)} _ Feature

Bisher gewinnt der uniqueID_featureName, und wir denken darüber nach, ihn nur als Referenz in einer kleinen Datenbank zu speichern.

Es hätte: branchID (int), featureName (varchar), featureDescription (varchar), date, who etc ...

Dies würde uns Zweige geben wie: 1_NewWhizBangFeature, 2_NowWithMoreFoo, ... und wir hätten eine einfache Referenz darüber, was dieser Zweig macht, ohne das Protokoll überprüfen zu müssen.

Gibt es eine bessere Lösung?

jfrobishow
quelle

Antworten:

14

Wenn Sie keinen Issue-Tracker haben, empfehle ich, einen einzurichten und dann {Issue-Tracker-Name} _ {Ticketnummer} zu verwenden. Wenn jemand in den letzten Jahren einen Fehler meldet und Sie nicht genau wissen, wie die Funktion funktionieren sollte, können Sie die Datei leicht mit Anmerkungen versehen und dorthin zurückkehren, wo der Benutzer möglicherweise genau diese Funktionalität angefordert hat.

Asa Ayers
quelle
Wir sind uns einig, dass wir einen Bugtracker haben und planen, die Bug-ID im Filialnamen für Bugfixes zu verwenden. Meine Frage galt eher einer völlig neuen Entwicklung, bei der Sie nichts reparieren, sondern etwas völlig Neues hinzufügen. Ich nehme an, wir könnten ein blödes Erweiterungsticket erstellen und von dort fortfahren.
jfrobishow
5
Sie sollten unbedingt Tickets für neue Funktionen erstellen. Das sind auch zu verfolgende Arbeiten. +1 für die Anforderung einer eindeutigen ID.
AShelly
Wenn Sie sicherstellen, dass alle Details der neuen Funktionen im Tracker gespeichert sind, kann später jemand überprüfen, ob sie wie geplant funktionieren oder ob wirklich ein Fehler vorliegt. Ich arbeite in einem Entwicklerteam, das ein 5+ Jahre altes Programm unterhält. Es gibt Zeiten, in denen der Client einen Fehler meldet und wenn wir nachforschen, stellen wir fest, dass dieser wie geplant funktioniert und der ursprüngliche Entwickler und der ursprüngliche Anforderer beide verschwunden sind. Wir haben ähnliche Situationen, in denen wir nicht wissen, warum etwas so ist, wie es ist, und wenn die Funktionen nicht im Tracker enthalten wären, hätten wir keine Möglichkeit, dies herauszufinden.
Asa Ayers
2

Ich schlage vor, es einfach zu halten und Zweige gemäß der FeatureName(oder feature-name) Konvention zu benennen . Ja, dies bedeutet einen gemeinsam genutzten Namespace, aber dies ist in der realen Welt selten ein Problem. Sobald ein Feature fertig ist und vollständig in die Hauptlinie eingebunden wurde, kann der Zweig sicher gelöscht werden.

Die Grundidee der verteilten Versionskontrolle besteht darin, dass eine einfache Verzweigung möglich sein sollte. Eine Einführung zusätzlicher Bürokratie wie der obligatorischen eindeutigen ID wird dies nur erschweren.

Adam Byrtek
quelle
1
Ich stimme zu, das ist der richtige Weg. In welcher Welt würden Sie jemals so viele Zweige haben, dass Sie eine Kollision nicht vermeiden können?
Alternative
Fairerweise ist es für uns wichtiger, eine Beschreibung zu erhalten, die an den Namen gebunden ist, den ich denke.
Jfrobishow
1
In einem großen Unternehmensumfeld bereitet es früher oder später Kopfzerbrechen, wenn Entwickler Namen für Features erfinden.
AShelly
1
Ich verstehe, weil in einem "großen Unternehmensumfeld" den Entwicklern nicht vertraut werden kann. Aber warten Sie, sie bilden auch Namen für Variablen, Funktionen und Dateien. Wir sollten ein Komitee einsetzen, um das auch zu kontrollieren! (Ironie)
Adam Byrtek
2

Ich empfehle folgendes Formular (als Beispiel):

BUG_ID
BUG # ID
TICKETNUMMER
TICKETNUMMER
feature_bla-bla-bla
release-x.xx.xx
release_x.xx.xx
build_2010-20-12
build_4565
BRANCH_x.xx.xx

Wählen Sie einfach gute Präfixe (um die Filterausgabe von hg-Zweigen zuzulassen ), Groß- und Kleinschreibung und ein Trennzeichen zwischen Präfix und ID / Namen.

gavenkoa
quelle
+1 haben wir uns am Ende für BUGID_ {freeCamelCasedTextDescription} entschieden.
jfrobishow