Buona convenzione di denominazione per le filiali denominate in {DVCS} di tua scelta


16

Stiamo integrando Mercurial lentamente nel nostro ufficio e facendo lo sviluppo web abbiamo iniziato a utilizzare filiali denominate.

Non abbiamo ancora trovato una buona convenzione per quanto riguarda la denominazione dei nostri rami.

Abbiamo provato:

  • FeatureName (Riesce a vedere questo causa il problema lungo la linea)
  • DEVInitial_FeatureName (potrebbe creare confusione quando lo sviluppatore va e viene)
  • {uniqueID (int)} _ Funzionalità

Finora il nome_ID_feature unico è vincente, stiamo pensando di mantenerlo in un piccolo DB solo per riferimento.

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

Questo ci darebbe rami come: 1_NewWhizBangFeature, 2_NowWithMoreFoo, ... e avremmo un facile riferimento su cosa fa quel ramo senza dover controllare il registro.

Qualche soluzione migliore là fuori?

Risposte:


14

Se non si dispone di un tracker dei problemi, si consiglia di impostarne uno e quindi utilizzare {nome tracker problema} _ {numero ticket}. Quando qualcuno da anni presenta un bug e non sai esattamente come dovrebbe funzionare la funzione, sarà facile annotare il file e tornare dove l'utente potrebbe aver richiesto quella funzionalità esatta.


D'accordo, abbiamo un bugtracker e stiamo pianificando di usare il bugID nel nome del ramo per le correzioni dei bug. La mia domanda era più per lo sviluppo totalmente nuovo, quando non stai aggiustando nulla ma aggiungendo qualcosa di totalmente nuovo. Suppongo che potremmo creare un stupido biglietto per i miglioramenti e andare da lì.
jfrobishow,

5
Dovresti assolutamente creare biglietti per nuove funzionalità. Sono anche lavori da tracciare. +1 per richiedere un ID univoco.
AShelly,

Se ti assicuri di inserire tutti i dettagli delle nuove funzionalità nel tracker, qualcuno in seguito può verificare se funziona come progettato o se c'è davvero un bug. Lavoro in un team di sviluppo che mantiene un programma di oltre 5 anni. Ci sono momenti in cui il client presenta un bug e quando lo cerchiamo troviamo che funziona come previsto e lo sviluppatore originale e il richiedente originale sono entrambi spariti. Abbiamo situazioni simili in cui non sappiamo perché qualcosa è come è e se le funzionalità non fossero nel tracker non avremmo modo di scoprirlo.
Asa Ayers,

2

Suggerisco di mantenerlo semplice e nominare i rami secondo la FeatureName(o feature-name) convenzione. Sì, questo significa uno spazio dei nomi condiviso, ma raramente è un problema nel mondo reale. Una volta che una funzione è stata completata e completamente unita alla linea principale, il ramo può essere eliminato in modo sicuro.

L'idea principale del controllo della versione distribuita è che dovrebbe essere facile ramificarsi, l'introduzione di una burocrazia aggiuntiva, come l'id univoco obbligatorio, non farà che renderlo più difficile.


1
Sono d'accordo, questa è la strada da percorrere. In quale mondo avresti mai avuto così tanti rami da non poter evitare la collisione?
alternativa

Abbastanza giusto, ottenere una descrizione legata al nome immagino sia più importante per noi ... il commit iniziale dovrebbe contenerlo, ma non so come estrarlo rapidamente.
jfrobishow,

1
In un grande ambiente aziendale, lasciare che gli sviluppatori inventino nomi per le funzionalità prima o poi causerà mal di testa.
AShelly,

1
Vedo, perché nel "grande ambiente aziendale" non ci si può fidare degli sviluppatori. Ma aspetta, creano anche nomi per variabili, funzioni e file. Dovremmo istituire un comitato per controllare anche quello! (ironia)
Adam Byrtek,

2

Consiglio di utilizzare tale modulo (come esempio):

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

Basta selezionare buoni prefissi (per consentire l'output del filtro dai rami hg ), regola di maiuscole e delimitatore tra prefisso e ID / nomi.


+1 siamo andati con BUGID_ {freeCamelCasedTextDescription} alla fine.
jfrobishow,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.