Best practice per l'unione di una nuova versione di origine di terze parti in una vecchia versione a cui sono state apportate modifiche

5

Un progetto su cui lavoro utilizza un codice sorgente che è stato acquistato da una terza parte. Il codice sorgente ci viene consegnato in un file zip. Archiviamo questo codice sorgente nel controllo della versione (TFS 2010) e apportiamo regolarmente modifiche ad esso.

Quando la terza parte rilascia una nuova versione del prodotto che abbiamo acquistato, ho bisogno di unire il suo nuovo codice al nostro. Poiché il codice che ottengo non è sotto alcun tipo rispetto al controllo della versione, è molto difficile farlo in modo corretto.

L'ultima volta che l'ho fatto, non avevamo apportato molte modifiche. Di conseguenza, sono stato in grado di controllare tutti i file, copiare i nuovi file nella loro posizione e sistemare tutto manualmente senza l'aiuto di alcun strumento di fusione. Ora che abbiamo una serie molto più ampia di modifiche, la risoluzione delle cose a mano è troppo fragile per essere un'opzione praticabile.

Ci sono idee migliori, o è condannato a essere ogni volta doloroso e fragile?

    
posta Beerman006 04.07.2013 - 03:17
fonte

2 risposte

7

Non posso dire nulla su TFS, ma in altri SCM con una buona ramificazione / fusione è noto come flusso di lavoro "Filiale fornitore".

In breve: il tuo repository otterrà (almeno) due rami: f.e Vendor e Custom

Nel ramo Fornitore conserverai le versioni di codice di vanilla così come sono, il ramo personalizzato avrà la tua modifica locale sopra l'originale.

Il processo di aggiornamento è piuttosto semplice:

  • Aggiorna fonti nel fornitore con nuova versione, commit
  • Unisci fornitore in personalizzato

Le modifiche non in conflitto (nessuna intersezione delle modifiche a monte con le proprie) verranno unite automaticamente, i conflitti devono essere risolti a mano

    
risposta data 04.07.2013 - 07:05
fonte
2

Lo strumento migliore per questo è un buon strumento di diff / merge. La maggior parte di questi supporta la fusione a tre vie. Con questo prendi il vecchio codice originale, le tue modifiche e le loro modifiche e mettile in tre riquadri affiancati e puoi vedere chi ha cambiato cosa.

Per lo più utilizzo la combinazione , ma ci sono tonnellate di altri strumenti simili che funzionano più o meno allo stesso modo.

    
risposta data 04.07.2013 - 03:28
fonte

Leggi altre domande sui tag