Sto usando svn senza rami (solo trunk) per molto tempo sul mio posto di lavoro. Ho scoperto la maggior parte o tutte le questioni relative a progetti che non hanno alcuna strategia di ramificazione. Improbabile che questo non cambierà sul mio posto di lavoro ma per i miei progetti privati.
Per i miei progetti privati che includono la maggior parte dei colleghi e che lavorano insieme allo stesso tempo su diverse funzionalità mi piace avere una solida strategia di ramificazione con supporto di rilasci a lungo termine basati su git.
Scopro che l'Atlassian Toolchain (JIRA, Stash e Bamboo) mi ha aiutato di più e mi consiglia anche una strategia di ramificazione che mi piace verificare per le esigenze della squadra.
La strategia di diramazione è stata presa direttamente dalla raccomandazione di Atlassian Stash con una piccola modifica alla struttura del ramo di aggiornamento rapido. Tutti gli hotfix dovrebbero anche essere uniti nella linea principale.
Lastrategiadiramificazioneinparole
- mainline(notoanchecomemastercongitotrunkconsvn)contienelaversionedisviluppo"state of the art". Tutto qui è stato controllato con successo con vari test automatici (tramite Bamboo) e sembra che tutto funzioni. Non è dimostrato come funzionante a causa di possibili test mancanti. È pronto per l'uso ma non consigliato per la produzione.
-
La funzione copre tutte le nuove funzionalità che non sono completamente finite. Una volta che una funzionalità è finita, verrà unita in linea principale . Campione di esempio:
feature/ISSUE-2-A-nice-Feature
-
bugfix corregge bug non critici che possono attendere la prossima versione normale. Campione di esempio:
bugfix/ISSUE-1-Some-typos
- production possiede l'ultima versione.
-
hotfix corregge bug critici che devono essere rilasciati urgenti per mainline , production e tutti i release a lungo termine interessati . Campione di esempio:
hotfix/ISSUE-3-Check-your-math
-
rilascio è per la manutenzione a lungo termine. Rami di esempio:
release/1.0
,release/1.1
release/1.0-rc1
Non sono un esperto quindi ti preghiamo di fornirmi un feedback. Quali problemi potrebbero apparire? Quali parti mancano o rallentano la produttività?