Quale flusso di lavoro trovi efficiente nello sviluppo simultaneo di più rami GIT interdipendenti? [chiuso]

2

Vorrei iniziare dicendo che la mia conoscenza GIT è piuttosto superficiale, quindi suppongo che potrebbe esserci qualcosa che mi manca.

THE SETUP:
Ad esempio, abbiamo un progetto che viene sviluppato come una raccolta di plug-in / moduli. Alcuni moduli, come la gestione dei contatti, dipendono dagli altri, come la convalida. Ogni modulo ha il proprio ramo.

FLUSSO DI LAVORO ATTUALE: Il nostro modulo di convalida viene sviluppato contemporaneamente con i nostri altri moduli, solo in un flusso separato. In tal modo, sto trovando che sto facendo un lotto di controllo avanti e indietro (così come un sacco di stoccaggio (e fusione, ma che sto bene con)).

Ad esempio, supponiamo che sto sviluppando module_x che ha bisogno di una nuova regola di validazione (che avrà usi anche in altri moduli) ... Io poi:

  1. nascondi il mio lavoro
  2. verifica il ramo di convalida
  3. scrivi la regola
  4. commit
  5. verifica il ramo module_x
  6. inserisci la memoria
  7. Unisci il ramo di validazione in module_x.

Ora, se trovo un miglioramento per qualcosa nel ramo di validazione (o solo per correggere un bug), devo ricominciare da capo.

Tra nuovi sviluppi, refactoring / miglioramenti e bug fixing, mi sembra di passare troppo tempo a passare avanti e indietro tra i flussi di sviluppo, e non posso fare a meno di pensare che c'è un modo migliore.

DO e DONT: È questo veramente come è fatto, o mi manca completamente l'immagine più grande? :)
Cosa funziona per te?

    
posta mOrloff 22.11.2013 - 00:49
fonte

1 risposta

2

Potresti confondere "modulo" con "ramo". Solo perché due classi si trovano in due file di codice sorgente completamente distinti e finiscono in due file di distribuzione completamente diversi non significa che devi rivederli su rami diversi.

Idealmente, avresti un ramo personale singolo per l'intero progetto, così che quando condividi le tue revisioni ai vari moduli a cui appartengono viene fatto atomicamente. (E condividi un ramo di sviluppo con il tuo team una volta che il tuo sviluppo personale è in uno stato condivisibile, e il ramo di sviluppo è ciò che alla fine indica la costruzione formale.)

Se i moduli devono essere separati per ragioni architettoniche, probabilmente non si vuole lavorare su entrambe le fasi di implementazione e convalida. Qualcuno altro dovrebbe essere l'unico a scrivere la convalida di ciò che hai fatto, in modo da ottenere un controllo automatico contro ipotesi non dette. E mentre quel "dovrebbe" è del tipo "tutti dovrebbero pagare le tasse in tempo e per intero", puoi ottenere un effetto positivo semplicemente lavorando in sequenza.

Un ramo in git è pensato per rappresentare un periodo di cambiamento dell'intero progetto, non solo per una parte di esso.

    
risposta data 22.11.2013 - 02:25
fonte

Leggi altre domande sui tag