Quando dovrebbero essere preferiti i TAG rispetto a BRANCHING e viceversa (nel CVS)?
-
02-07-2019 - |
Domanda
Penso che il titolo dovrebbe essere abbastanza buono.
Soluzione
Tag
Pensalo come un'istantanea nel tempo. Voglio poter tornare a quel punto esatto. Tuttavia, non cambierà mai. Non effettuare un check-in su un elemento con tag.
Cose che possono essere taggate:
- Rilasci (maggiori e minori)
- Patch inviate ai clienti
- Correzioni di bug
- Pietre miliari (alfa, beta, ecc ...)
- Build giornaliero riuscito
Filiali
Il ramo avrà lo sviluppo eseguito su di esso (ad esempio checkin).
È possibile creare un ramo da un tag (ad esempio per correggere un bug).
È possibile creare un ramo per sviluppare una funzionalità e quindi ricondurlo al trunk principale.
È possibile creare un ramo per una versione (minore o maggiore).
Il punto chiave è che i rami potrebbero essere modificati e i tag non dovrebbero essere .
Altri suggerimenti
I tag devono essere utilizzati quando si desidera contrassegnare una pietra miliare. La pietra miliare potrebbe essere piccola come una costruzione quotidiana.
I rami dovrebbero essere usati quando si desidera apportare modifiche indipendentemente da un altro ramo / tronco.
La ramificazione dovrebbe essere usata anche per le pietre miliari principali, come le versioni. Questo dipende dalla tua strategia di branching .
A proposito di altre risposte,
Utilizziamo tag per rilasci di punti minori e rami per rilasci. Ad esempio,
v1.0 <-- Branch
v1.0.1 <-- Tag
v1.0.2 <-- Tag
v1.1 <-- Branch
v1.1.1 <-- Tag
v1.1.2 <-- Tag
v1.2 <-- Branch
v1.2.1 <-- Tag
v1.2.2 <-- Tag
v1.3 <-- Branch
v1.3.1 <-- Tag
v1.3.2 <-- Tag
v1.4 <-- Branch
v1.4.1 <-- Tag
v1.4.2 <-- Tag
v1.5 <-- Branch
v1.5.1 <-- Tag
v1.5.2 <-- Tag
Per usare un'analogia con Microsoft, Branch è una versione di Windows (95, XP, Vista, ecc.) e un tag è un service pack.