Come organizzare i rami del repository? [chiuso]

3

Sto cercando di trovare un modo per organizzare i rami nel mio repository in modo sensato. Vorrei che il ramo principale contenga solo commit "puliti": funzioni che sono (per lo più) complete, nessun codice superfluo che non ha alcun ruolo nella versione corrente dell'applicazione, ecc.

Ho pensato che per ogni funzione dovrei avere un ramo di sviluppo separato, e una volta che questa funzionalità è completa, dovrebbe essere unita al ramo principale.

Questo è un modo valido per organizzare il tuo repository? Potete consigliare un buon schema di denominazione per i rami di sviluppo? Quali altri modi per organizzare il tuo repository puoi consigliare?

    
posta Paul 13.08.2014 - 17:57
fonte

1 risposta

5

Modellerei qualcosa del modello di ramificazione di Git di Vincent Driessen.

link

Ci sono plugin per git e mercurial. L'albero dei sorgenti del programma di Bitbucket ha persino la versione mercuriale.

L'idea principale è che hai "corsie" separate per le diverse parti della fase di sviluppo. Ne hai uno per il tuo principale, uno per i test e uno per lo sviluppo.

Per lo sviluppo ci può essere un nuovo ramo per ogni nuova funzionalità che viene aggiunta al prodotto. Una volta completato e superato il test locale, il codice può essere spostato nel ramo di test e la funzionalità può essere chiusa. Ogni funzione inizia con il ramo della funzione principale.

Il ramo di test è l'unico ramo che dovrebbe essere unito al ramo principale. L'obiettivo è che ogni funzionalità venga unita a test e testata prima di essere unita al ramo principale.

L'obiettivo del ramo principale è che è sempre pronto per il rilascio. Ciò significa che è possibile distribuire da esso in qualsiasi momento. Inoltre, è possibile avere un ramo separato al di fuori del ramo principale per risolvere eventuali correzioni rapide se vengono rilevati problemi nella produzione. (Leggi: non problemi importanti.) Cioè errori di battitura e tali.

Il problema principale di questo modello è che ci sono molte fusioni che accadono. Nella maggior parte dei casi dovrebbero esserci solo unioni pulite, anche se possono apparire confuse su un grafico. Tendo ad apprezzare questo modello perché mantiene sempre un ramo "pulito" e non è troppo difficile da usare e converte un progetto in uso.

Dai un'occhiata al plugin per mercurial, hgflow: link

O se preferisci git-flow: link

    
risposta data 13.08.2014 - 18:16
fonte

Leggi altre domande sui tag