Lavoro in un grande gruppo di sviluppo software e recentemente abbiamo effettuato il passaggio da Clearcase a Git. Alcune previsioni sono state fatte per quanto riguarda la qualità della linea principale in quanto sarebbe diventato troppo rumoroso e ingestibile con i commit di centinaia di sviluppatori e che il repository diventerebbe troppo grande troppo rapidamente.
L'attuale proposta per risolvere questo problema è che quando i team di feature apportano modifiche alla linea principale (questo può accadere ogni settimana o giù di lì, e ci sono più team che lavorano in parallelo sul prodotto) un singolo sviluppatore sarebbe responsabile dello schiacciamento più commit da più sviluppatori in un singolo commit.
L'approccio di cui sopra mi preoccupa principalmente perché la funzionalità 'git bisect' e 'git blame' sarebbe compromessa (un singolo sviluppatore ora rappresenterebbe il lavoro di più sviluppatori). Ho risposto alle seguenti proposte:
- Per affrontare il rumore nella linea principale, ogni sviluppatore dovrebbe schiacciare un singolo commit prima di creare una richiesta di pull. Questa sembra essere una pratica standard.
- Per far fronte alle dimensioni del repository, gli sviluppatori potrebbero eseguire clonazioni e innesti poco profondi (entrambi gli approcci sono dettagliati qui: link )
Finora non sono stato in grado di convincere nessuno che questi sarebbero stati buoni approcci. FWIW Ho anche proposto di utilizzare Gitflow come principale workflow di sviluppo per separare i rami di sviluppo e rilascio, ma anche questo non ha ottenuto alcuna trazione. Personalmente penso che fintanto che gli sviluppatori si schiacciano in un singolo commit prima di generare una richiesta di pull quindi va bene ... avere commit da molti sviluppatori diversi nella mainline è praticamente un non-problema dopo quel punto, mostra solo che un sacco di il lavoro è in corso.
Quindi la mia domanda a quelli di voi che lavorano su grandi progetti in Git: avere molti commit in arrivo sulla vostra linea principale è effettivamente un problema, costringendovi così a ricorrere a soluzioni come lo schiacciamento di commit da più sviluppatori in singoli commit?