Qual è il modo corretto di unire due progetti nel software di controllo del codice sorgente

8

Sto usando Fossil-SCM per mantenere i miei progetti. Dato che non lavoro in un team, di solito ho un ramo di sviluppo molto lineare: 1.0 - > 1.1 - > 1.2

Mi chiedo quale sia la procedura quando si ha un progetto il cui compito sta per essere assegnato a un progetto correlato. E rendendo così il primo progetto obsoleto. Sebbene tendo a riscrivere la maggior parte del mio codice se non ricordo di averlo già scritto, vorrei comunque mantenere il codice archiviato. E preferirei non avere un repository di fossili che sia solo morto. Posso unirlo? È questo il modo corretto di gestirlo?

Ad esempio il codice stava estraendo dati da un file excel per formattare una pagina HTML. Ora, ho convinto il mio datore di lavoro a spostare il foglio di calcolo Excel in un database per ridurre la ridondanza, aumentare l'efficienza e yadda yadda. Dato che ora posso fare query logiche che non devono saltare i cerchi per preformare usando il database, non avrò bisogno dei file vbs extra che originariamente manipolavano il file excel. Tecnicamente porterei parte del codice esistente nel nuovo progetto corrente.

Dal momento che ha già il proprio bagagliaio, sarebbe consigliabile combinare il tronco di un progetto diverso con questo, e come farei esattamente?

Quindi immagino che il mio albero assomigli a questo, e non ho visto esempi di ramificazioni software simili a questo albero invertito prima, quindi mi chiedo quale sia la norma per una situazione come questa?

    
posta Mallow 10.06.2014 - 23:29
fonte

1 risposta

1

Il modo migliore per unire i progetti dipende un po 'da come vuoi gestire la loro cronologia e se ti aspetti che continuino a evolversi separatamente.

Tienili separati: utilizza gli esterni / i sottomoduli

Una tecnica molto buona da considerare sarebbe quella dei sottomoduli. Git e svn hanno questo concetto (chiamato esternals in svn), ma sfortunatamente, sembra fossile no ( link ).

Ma l'idea è che puoi avere un progetto DEPEND su un altro progetto, e basta selezionare quale ramo o tag o singolo commit da quell'altro progetto che vuoi usare nel progetto di referenziamento.

Basta copiarlo

Se vuoi solo sollevare un po 'di codice e non preoccuparti della cronologia, puoi semplicemente aggiungere una cartella con il nuovo codice e confermarla.

Copia ma conserva la cronologia precedente

Se vuoi unire il codice dal secondo progetto al primo e preservare la cronologia, con git almeno, puoi usare git merge (vedi link per un esempio). git permette di indirizzare altri repository come fonte di dati da cui fondersi (questo è fondamentalmente il modo in cui git pull funziona). Non ne so abbastanza di fossili per sapere se la fusione fossile può essere utilizzata in questo modo.

    
risposta data 14.07.2018 - 01:01
fonte

Leggi altre domande sui tag