SlideShare a Scribd company logo
1 of 38
Download to read offline
VCS, DVCS, Git-flow
La gestione dei sorgenti e il controllo di versione
Tiziano Lattisi
giovedì 20 giugno 13
a cosa serve? (1)
Backup incrementale di modifiche
Gestione di versioni distinte di un software
(funzionalità introdotte a breve, medio, lungo
termine; personalizzazioni)
“Time machine” (per passi di sviluppo)
Documentazione sorgenti più efficace dei commenti
nel codice
Statistiche
giovedì 20 giugno 13
a cosa serve? (2)
Lavoro contemporaneo sulla stessa risorsa
lock dei file (profili di accesso, necessità di
un responsabile...)
strumenti di merge (automatici con
risoluzione conflitti)
Risoluzione bug (che potrebbero essere di
versione)
giovedì 20 giugno 13
Storia
1972
1974
1982
1985
1986
2000
2003
2005
Source Code Control System (Bell Labs)
diff (AT&T)
GNU Revision Control System (Walter F. Tichy)
patch (Larry Wall)
CVS (Dick Grune)
Subversion (Apache)
Darcs (David Roundy)
Git (Linus Torvalds)
Mercurial (Matt Mackall)
giovedì 20 giugno 13
diff & patch
$ echo "prima riga" > test.txt
$ cp test.txt test2.txt
$ echo "seconda riga" >> test2.txt
$ diff -u test.txt test2.txt > test.diff
$ diff test.txt test2.txt
1a2
> seconda riga
$ patch << test.diff
>
$ patch < test.diff
patching file test.txt
$ diff test.txt test2.txt
$ cat test.diff
--- test.txt	 2013-06-19 12:23:19.000000000 +0200
+++ test2.txt	2013-06-19 12:23:33.000000000 +0200
@@ -1 +1,2 @@
prima riga
+seconda riga
giovedì 20 giugno 13
definizioni
hunk (o change): una modifica atomica ad un
file
commit (o record): un insieme di hunk che
porta lo sviluppo da A a B
branch: un ramo di sviluppo che porta ad un
obiettivo specifico (ad esempio una feature)
giovedì 20 giugno 13
cantieri aperti
produzione (la versione in uso)
la correzione di un baco
il test per la futura versione di produzione
lo sviluppo di una o più funzionalità (alcune
per la prossima versione in test, altre per
milestone più lontane...)
giovedì 20 giugno 13
flow
master: branch allineato con la versione in
produzione
develop: branch allineato con la versione in
sviluppo
master
ver. 1.0
giovedì 20 giugno 13
flow
master: branch allineato con la versione in
produzione
develop: branch allineato con la versione in
sviluppo
master
develop
ver. 1.0
giovedì 20 giugno 13
flow
master: branch allineato con la versione in
produzione
develop: branch allineato con la versione in
sviluppo
master
develop
ver. 1.0
giovedì 20 giugno 13
flow
master: branch allineato con la versione in
produzione
develop: branch allineato con la versione in
sviluppo
master
develop
ver. 1.0
giovedì 20 giugno 13
flow
master: branch allineato con la versione in
produzione
develop: branch allineato con la versione in
sviluppo
master
develop
ver. 1.0 ver. 2.0
giovedì 20 giugno 13
flow
master: branch allineato con la versione in
produzione
develop: branch allineato con la versione in
sviluppo
master
develop
ver. 1.0 ver. 2.0
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
potenziale
conflitto
giovedì 20 giugno 13
feature branch
branch di sviluppo di una nuova funzionalità
ramifica da develop e si innesta su develop
a fine sviluppo viene cancellato (merge o rebase)
develop
feature/b
feature/a
potenziale
conflitto
giovedì 20 giugno 13
hotfix branch
branch di fix per un bug in produzione
ramifica da master (produzione) e si innesta su
master
a fine sviluppo viene cancellato (può essere
necessario un merge su develop)
master
ver. 2.0
giovedì 20 giugno 13
hotfix branch
branch di fix per un bug in produzione
ramifica da master (produzione) e si innesta su
master
a fine sviluppo viene cancellato (può essere
necessario un merge su develop)
master
ver. 2.0
hotfix/a
giovedì 20 giugno 13
hotfix branch
branch di fix per un bug in produzione
ramifica da master (produzione) e si innesta su
master
a fine sviluppo viene cancellato (può essere
necessario un merge su develop)
master
ver. 2.0 ver. 2.1
hotfix/a
giovedì 20 giugno 13
hotfix branch
branch di fix per un bug in produzione
ramifica da master (produzione) e si innesta su
master
a fine sviluppo viene cancellato (può essere
necessario un merge su develop)
master
ver. 2.0 ver. 2.1
hotfix/a
develop
merge in
develop?
giovedì 20 giugno 13
hotfix branch
branch di fix per un bug in produzione
ramifica da master (produzione) e si innesta su
master
a fine sviluppo viene cancellato (può essere
necessario un merge su develop)
master
ver. 2.0 ver. 2.1
hotfix/a
develop
merge in
develop?
giovedì 20 giugno 13
release branch
candidata in test per la prossima versione di
produzione
ramifica da develop e si innesta su master
viene generalmente “taggata” con un numero di
versione
master
ver. 2.1
develop
giovedì 20 giugno 13
release branch
candidata in test per la prossima versione di
produzione
ramifica da develop e si innesta su master
viene generalmente “taggata” con un numero di
versione
master
ver. 2.1
release/3.0
develop
giovedì 20 giugno 13
release branch
candidata in test per la prossima versione di
produzione
ramifica da develop e si innesta su master
viene generalmente “taggata” con un numero di
versione
master
ver. 2.1
release/3.0
develop
giovedì 20 giugno 13
release branch
candidata in test per la prossima versione di
produzione
ramifica da develop e si innesta su master
viene generalmente “taggata” con un numero di
versione
master
ver. 2.1
release/3.0
develop
giovedì 20 giugno 13
release branch
candidata in test per la prossima versione di
produzione
ramifica da develop e si innesta su master
viene generalmente “taggata” con un numero di
versione
master
ver. 2.1
release/3.0
develop
ver. 3.0
giovedì 20 giugno 13
release branch
candidata in test per la prossima versione di
produzione
ramifica da develop e si innesta su master
viene generalmente “taggata” con un numero di
versione
master
ver. 2.1
release/3.0
develop
ver. 3.0
giovedì 20 giugno 13
release branch
candidata in test per la prossima versione di
produzione
ramifica da develop e si innesta su master
viene generalmente “taggata” con un numero di
versione
master
ver. 2.1
release/3.0
develop
ver. 3.0
giovedì 20 giugno 13
buona creanza
pull, (risolvi i conflitti), push
commit frequenti (ma “significativi”, potrebbero
andare in changelog)
test prima di push
regole di stesura dei commenti (es. niente nomi di
file, forma dichiarativa, etc)
definizione delle regole di flow:
utilizzo dei branch
tempi di vita dei branch
responsabili dei branch principali
giovedì 20 giugno 13
fine
Thank you.
Tiziano Lattisi
Me: http://www.linkedin.com/in/tizianolattisi/
Slides: http://www.slideshare.net/lattisi/
Spunti e approfondimenti
http://leif.me/papers/Singer2012a.pdf
http://nvie.com/posts/a-successful-git-branching-model/
giovedì 20 giugno 13

More Related Content

Similar to VCS - DVCS - GIT-FLOW

Git Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funzionaGit Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funzionaInnoteam Srl
 
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Giulio Vian
 
Pacchi e pacchetti
Pacchi e pacchettiPacchi e pacchetti
Pacchi e pacchettigiallu
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkGiuseppe Cramarossa
 
Gestione del codice sorgente con Visual Studio Online
Gestione del codice sorgente con Visual Studio OnlineGestione del codice sorgente con Visual Studio Online
Gestione del codice sorgente con Visual Studio OnlineDavide Benvegnù
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaRoberto Torresani
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsMarcello Teodori
 
TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaRoberto Torresani
 
Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Gemma Catolino
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperStefano Ottaviani
 
Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)Valerio Radice
 
Development process
Development processDevelopment process
Development processEmidio Croci
 
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015Codemotion
 
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Gerardo Di Iorio
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaRoberto Torresani
 
Sviluppo Rapido Di Applicazioni Con Grails
Sviluppo Rapido Di Applicazioni Con GrailsSviluppo Rapido Di Applicazioni Con Grails
Sviluppo Rapido Di Applicazioni Con GrailsAlberto Brandolini
 

Similar to VCS - DVCS - GIT-FLOW (18)

Git Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funzionaGit Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funziona
 
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
Visual Studio Release Management - una nuova Weltanschauung o un'evoluzione n...
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Pacchi e pacchetti
Pacchi e pacchettiPacchi e pacchetti
Pacchi e pacchetti
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
 
Gestione del codice sorgente con Visual Studio Online
Gestione del codice sorgente con Visual Studio OnlineGestione del codice sorgente con Visual Studio Online
Gestione del codice sorgente con Visual Studio Online
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novita
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa Struts
 
TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novita
 
Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Git e GitHub - L'essenziale
Git e GitHub - L'essenziale
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
 
Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)
 
Development process
Development processDevelopment process
Development process
 
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015
Marco Arena - Perché nel 2015 parliamo ancora di C++? | Codemotion Milan 2015
 
TuxIsAlive
TuxIsAliveTuxIsAlive
TuxIsAlive
 
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novita
 
Sviluppo Rapido Di Applicazioni Con Grails
Sviluppo Rapido Di Applicazioni Con GrailsSviluppo Rapido Di Applicazioni Con Grails
Sviluppo Rapido Di Applicazioni Con Grails
 

More from Tiziano Lattisi

ZoeFX: un framework MVC per JavaFX
ZoeFX: un framework MVC per JavaFXZoeFX: un framework MVC per JavaFX
ZoeFX: un framework MVC per JavaFXTiziano Lattisi
 
Groovy e Domain Specific Languages
Groovy e Domain Specific LanguagesGroovy e Domain Specific Languages
Groovy e Domain Specific LanguagesTiziano Lattisi
 
PyPaPi Qt Java Framework
PyPaPi Qt Java FrameworkPyPaPi Qt Java Framework
PyPaPi Qt Java FrameworkTiziano Lattisi
 

More from Tiziano Lattisi (6)

JugTAAS ReSTful
JugTAAS ReSTfulJugTAAS ReSTful
JugTAAS ReSTful
 
ZoeFX: un framework MVC per JavaFX
ZoeFX: un framework MVC per JavaFXZoeFX: un framework MVC per JavaFX
ZoeFX: un framework MVC per JavaFX
 
Groovy e Domain Specific Languages
Groovy e Domain Specific LanguagesGroovy e Domain Specific Languages
Groovy e Domain Specific Languages
 
JavaFX2: una panoramica
JavaFX2: una panoramicaJavaFX2: una panoramica
JavaFX2: una panoramica
 
JPA2 - a brief intro
JPA2 - a brief introJPA2 - a brief intro
JPA2 - a brief intro
 
PyPaPi Qt Java Framework
PyPaPi Qt Java FrameworkPyPaPi Qt Java Framework
PyPaPi Qt Java Framework
 

VCS - DVCS - GIT-FLOW

  • 1. VCS, DVCS, Git-flow La gestione dei sorgenti e il controllo di versione Tiziano Lattisi giovedì 20 giugno 13
  • 2. a cosa serve? (1) Backup incrementale di modifiche Gestione di versioni distinte di un software (funzionalità introdotte a breve, medio, lungo termine; personalizzazioni) “Time machine” (per passi di sviluppo) Documentazione sorgenti più efficace dei commenti nel codice Statistiche giovedì 20 giugno 13
  • 3. a cosa serve? (2) Lavoro contemporaneo sulla stessa risorsa lock dei file (profili di accesso, necessità di un responsabile...) strumenti di merge (automatici con risoluzione conflitti) Risoluzione bug (che potrebbero essere di versione) giovedì 20 giugno 13
  • 4. Storia 1972 1974 1982 1985 1986 2000 2003 2005 Source Code Control System (Bell Labs) diff (AT&T) GNU Revision Control System (Walter F. Tichy) patch (Larry Wall) CVS (Dick Grune) Subversion (Apache) Darcs (David Roundy) Git (Linus Torvalds) Mercurial (Matt Mackall) giovedì 20 giugno 13
  • 5. diff & patch $ echo "prima riga" > test.txt $ cp test.txt test2.txt $ echo "seconda riga" >> test2.txt $ diff -u test.txt test2.txt > test.diff $ diff test.txt test2.txt 1a2 > seconda riga $ patch << test.diff > $ patch < test.diff patching file test.txt $ diff test.txt test2.txt $ cat test.diff --- test.txt 2013-06-19 12:23:19.000000000 +0200 +++ test2.txt 2013-06-19 12:23:33.000000000 +0200 @@ -1 +1,2 @@ prima riga +seconda riga giovedì 20 giugno 13
  • 6. definizioni hunk (o change): una modifica atomica ad un file commit (o record): un insieme di hunk che porta lo sviluppo da A a B branch: un ramo di sviluppo che porta ad un obiettivo specifico (ad esempio una feature) giovedì 20 giugno 13
  • 7. cantieri aperti produzione (la versione in uso) la correzione di un baco il test per la futura versione di produzione lo sviluppo di una o più funzionalità (alcune per la prossima versione in test, altre per milestone più lontane...) giovedì 20 giugno 13
  • 8. flow master: branch allineato con la versione in produzione develop: branch allineato con la versione in sviluppo master ver. 1.0 giovedì 20 giugno 13
  • 9. flow master: branch allineato con la versione in produzione develop: branch allineato con la versione in sviluppo master develop ver. 1.0 giovedì 20 giugno 13
  • 10. flow master: branch allineato con la versione in produzione develop: branch allineato con la versione in sviluppo master develop ver. 1.0 giovedì 20 giugno 13
  • 11. flow master: branch allineato con la versione in produzione develop: branch allineato con la versione in sviluppo master develop ver. 1.0 giovedì 20 giugno 13
  • 12. flow master: branch allineato con la versione in produzione develop: branch allineato con la versione in sviluppo master develop ver. 1.0 ver. 2.0 giovedì 20 giugno 13
  • 13. flow master: branch allineato con la versione in produzione develop: branch allineato con la versione in sviluppo master develop ver. 1.0 ver. 2.0 giovedì 20 giugno 13
  • 14. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop giovedì 20 giugno 13
  • 15. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/a giovedì 20 giugno 13
  • 16. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a giovedì 20 giugno 13
  • 17. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a giovedì 20 giugno 13
  • 18. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a giovedì 20 giugno 13
  • 19. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a giovedì 20 giugno 13
  • 20. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a giovedì 20 giugno 13
  • 21. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a giovedì 20 giugno 13
  • 22. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a giovedì 20 giugno 13
  • 23. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a potenziale conflitto giovedì 20 giugno 13
  • 24. feature branch branch di sviluppo di una nuova funzionalità ramifica da develop e si innesta su develop a fine sviluppo viene cancellato (merge o rebase) develop feature/b feature/a potenziale conflitto giovedì 20 giugno 13
  • 25. hotfix branch branch di fix per un bug in produzione ramifica da master (produzione) e si innesta su master a fine sviluppo viene cancellato (può essere necessario un merge su develop) master ver. 2.0 giovedì 20 giugno 13
  • 26. hotfix branch branch di fix per un bug in produzione ramifica da master (produzione) e si innesta su master a fine sviluppo viene cancellato (può essere necessario un merge su develop) master ver. 2.0 hotfix/a giovedì 20 giugno 13
  • 27. hotfix branch branch di fix per un bug in produzione ramifica da master (produzione) e si innesta su master a fine sviluppo viene cancellato (può essere necessario un merge su develop) master ver. 2.0 ver. 2.1 hotfix/a giovedì 20 giugno 13
  • 28. hotfix branch branch di fix per un bug in produzione ramifica da master (produzione) e si innesta su master a fine sviluppo viene cancellato (può essere necessario un merge su develop) master ver. 2.0 ver. 2.1 hotfix/a develop merge in develop? giovedì 20 giugno 13
  • 29. hotfix branch branch di fix per un bug in produzione ramifica da master (produzione) e si innesta su master a fine sviluppo viene cancellato (può essere necessario un merge su develop) master ver. 2.0 ver. 2.1 hotfix/a develop merge in develop? giovedì 20 giugno 13
  • 30. release branch candidata in test per la prossima versione di produzione ramifica da develop e si innesta su master viene generalmente “taggata” con un numero di versione master ver. 2.1 develop giovedì 20 giugno 13
  • 31. release branch candidata in test per la prossima versione di produzione ramifica da develop e si innesta su master viene generalmente “taggata” con un numero di versione master ver. 2.1 release/3.0 develop giovedì 20 giugno 13
  • 32. release branch candidata in test per la prossima versione di produzione ramifica da develop e si innesta su master viene generalmente “taggata” con un numero di versione master ver. 2.1 release/3.0 develop giovedì 20 giugno 13
  • 33. release branch candidata in test per la prossima versione di produzione ramifica da develop e si innesta su master viene generalmente “taggata” con un numero di versione master ver. 2.1 release/3.0 develop giovedì 20 giugno 13
  • 34. release branch candidata in test per la prossima versione di produzione ramifica da develop e si innesta su master viene generalmente “taggata” con un numero di versione master ver. 2.1 release/3.0 develop ver. 3.0 giovedì 20 giugno 13
  • 35. release branch candidata in test per la prossima versione di produzione ramifica da develop e si innesta su master viene generalmente “taggata” con un numero di versione master ver. 2.1 release/3.0 develop ver. 3.0 giovedì 20 giugno 13
  • 36. release branch candidata in test per la prossima versione di produzione ramifica da develop e si innesta su master viene generalmente “taggata” con un numero di versione master ver. 2.1 release/3.0 develop ver. 3.0 giovedì 20 giugno 13
  • 37. buona creanza pull, (risolvi i conflitti), push commit frequenti (ma “significativi”, potrebbero andare in changelog) test prima di push regole di stesura dei commenti (es. niente nomi di file, forma dichiarativa, etc) definizione delle regole di flow: utilizzo dei branch tempi di vita dei branch responsabili dei branch principali giovedì 20 giugno 13
  • 38. fine Thank you. Tiziano Lattisi Me: http://www.linkedin.com/in/tizianolattisi/ Slides: http://www.slideshare.net/lattisi/ Spunti e approfondimenti http://leif.me/papers/Singer2012a.pdf http://nvie.com/posts/a-successful-git-branching-model/ giovedì 20 giugno 13