Mantenendo rami di sviluppo dove un ramo è un sottoinsieme di un altro ramo
-
20-09-2019 - |
Domanda
Sfondo : Ho ereditato un certo codice MATLAB per analizzare i dati per il mio dottorato di ricerca ricerca. Per aiutare a capire meglio il codice, ho Pared il codice verso il basso per il sottoinsieme minimo di file necessari per eseguire il codice per un caso di test di esempio.
Domanda : vorrei commettere questo codice per un sistema di controllo di versione come due rami, un ramo master
contenente tutto il codice, e un ramo minimal
contenente la mia versione ridotta del codice , ed essere in grado di fondere cambiamenti avanti e indietro tra questi rami. Come posso fare questo?
Io preferirei fare questo con una sola directory di lavoro e il nome filiali sia in Git o Mercurial, ma sono aperto ad altri suggerimenti.
Modifica : Ho pensato che avevo visto una precedente domanda Stack Overflow in questo senso, e ho appena trovato: aggiornamenti Pushing ad un ramo Mercurial potato . Nel un commento alla risposta accettata, è ricordato che il termine per quello che sto cercando di fare è "stretta clonazione" e che si tratta di un work in progress per entrambi Git e Mercurial.
Soluzione
Sia git e mercuriale dovrebbe funzionare bene. Creare il ramo principale, quindi copiarlo al ramo minima, quindi spogliare il ramo minimo a guardare come l'attuazione avete già (eliminare tutti i file aggiuntivi, copiare i file che sono stati modificati).
Da allora, utilizzare normali comandi incorporate tra i rami. E 'probabilmente meglio di fondere dal ramo minima al ramo master in primo luogo. Unire l'altro modo 'round più è probabile che dà denunce che la fusione non è riuscita (con conflitti), come alcuni dei file applicano ai file / funzioni rimossi eliminati.