Sto cercando di elaborare un buon metodo per gestire le modifiche al codice su un progetto di grandi dimensioni con più team. Al momento utilizziamo la sovversione, ma voglio una maggiore flessibilità nella creazione di una nuova versione di quanto sembri essere in grado di ottenere con la sovversione.Controllo versione agile?
Ecco grosso modo che voglio:
- per ogni sviluppatore per creare patch facilmente identificabili per il progetto. Ogni patch offre una storia utente completa (una funzione o una correzione rilasciabile). Potrebbe comprendere molte modifiche a molti file.
- sviluppatori sono in grado di applicare facilmente e rimuovere propria e altre patch per facilitare il test gestore
- rilascio seleziona le patch da utilizzare nella prossima versione in un nuovo ramo
- ramo è testato, correzioni fuse, e alla fine si fondono in live
- i team possono quindi riportare queste modifiche nelle loro sandbox.
sto guardando stacked git come un modo per raggiungere tale obiettivo, ma quali altri strumenti o tecniche in grado di fornire questo tipo di flusso di lavoro?
Esattamente il tipo di cosa che sto cercando. Il tuo P.S. è ben fatto, ma a volte abbiamo caratteristiche che non passeranno i test in tempo. Ovviamente non è un fallimento del controllo della versione, ma allo stesso tempo, voglio essere in grado di riassemblare facilmente un rilascio quando ciò accade. –
@ Paul: il tuo ragionamento per la scelta e la scelta ha senso. Abbiamo clienti che desiderano scegliere e scegliere patch e modifiche, che in una modalità peggio potrebbero essere qualsiasi serie di modifiche, in qualsiasi momento per qualsiasi ramo. E no, non ... beh quasi mai, alcuni clienti e problemi possono torcere il braccio abbastanza da farlo accadere, ma è un processo di supporto speciale (il cliente A ha una versione speciale). –
@PaulDixon: Sono contento che tu l'abbia trovato interessante. Per quanto riguarda la tua risposta al P.S., ho capito ora. La mia sensazione immediata è che tali caratteristiche non dovrebbero essere trasferite al ramo DONE nel modello sopra (e automaticamente rinviate allo sprint successivo e quindi alla prossima release). Ma molto probabilmente semplificherò troppo e ti farò scoprire come affrontare questa situazione nel * tuo * contesto :) –