Esecuzione del passaggio della versione principale nello sviluppo del software in un repository separato [duplicato]

2

Attualmente stiamo progettando di passare dalla nostra versione del software 5.x.x a 6.x.x. Tali versioni importanti contengono nel nostro caso un sacco di lavori di refactoring e la modifica dell'architettura del software. Invece di creare un nuovo ramo per la versione 6 (git), ho pensato di creare un repository personalizzato per questo. In generale, lo sviluppo della nuova versione si basa sulla vecchia versione, quindi sarebbe una copia.

Il mio problema è che lo sviluppo della versione 5 non si fermerà, perché verranno risolti bug e alcune modifiche minori. Ma ora ho due versioni su cui sto lavorando, in due repository separati. Qual è il modo migliore per apportare modifiche in entrambi, senza copiare il codice, o eseguire il lavoro due volte? C'è un modo efficace?

Forse qualcun altro ha lo stesso problema in precedenza.

    
posta BendEg 29.11.2015 - 14:34
fonte

2 risposte

8

Un modo comune per gestire questo scenario è usare un concetto di tronco / ramo. Quello che fai è avere il repository singolo e diramare la versione 5.x.x per ragioni di manutenzione. Quindi inserisci tutte le nuove modifiche 6.x.x nel bagagliaio. In questo modo manterrai tutta la cronologia delle versioni del tuo codice. Ciò consente anche di controllare la versione precedente e apportare una correzione mirata senza incidere sul trunk.

Ecco come si presenta:

                                                |------branch (5.x.x)
                                                |
----------------------------------------------------------------------Trunk (6.x.x)

Poi più tardi, se dovessi avere una versione 7.x.x, potresti fare lo stesso di nuovo:

             |------branch (5.x.x)
             |                             |---branch (6.x.x)
             |                             |
---------------------------------------------------------Trunk (7.x.x)
    
risposta data 29.11.2015 - 14:50
fonte
2

Diverse soluzioni sono insieme a git. Ho ottenuto buone esperienze con git-worktree per tali situazioni. Estratto dalle pagine del manuale:

Manage multiple working trees attached to the same repository.

A git repository can support multiple working trees, allowing you 
to check out more than one branch at a time. With git worktree add
a new working tree is associated with the repository. This new working
tree is called a "linked working tree" as opposed to the "main working
tree" prepared by "git init" or "git clone". A repository has one main
working tree (if it’s not a bare repository) and zero or more linked
working trees.

Una copia completa qui: link

    
risposta data 29.11.2015 - 14:52
fonte

Leggi altre domande sui tag