Aggiornamento di codice di terze parti ereditato con modifiche [chiuso]

0

Ho ereditato un progetto php di codice di terze parti con una buona dose di personalizzazione specifica dell'azienda su di esso. Ora devo aggiornarlo e la persona che ha posseduto il progetto è quella che ho sostituito e nessun altro sa quali cambiamenti sono cambiamenti di terze parti e quali cambiamenti sono specifici dell'azienda.

Non è una situazione troppo terribile perché ha ricontrollato la versione iniziale dell'applicazione da alcuni aggiornamenti. Ma poi ha controllato 2 o 3 aggiornamenti e circa 10 o 15 patch.

Quindi, dire che ho una versione di terze parti completamente generica dalla società da cui abbiamo acquistato il codice. Come faccio a unire le modifiche che l'ultimo sviluppatore ha apportato in una nuova versione. Stiamo usando git.

    
posta Peter Turner 26.03.2015 - 22:31
fonte

1 risposta

2

Ci sono alcuni approcci che potresti prendere in considerazione:

  1. È possibile scaricare una copia vanilla della libreria dalla stessa versione utilizzata nel progetto. Quindi usa un'utilità diff per trovare ciò che è stato cambiato tra la tua versione e la versione di vanilla. Questo approccio potrebbe funzionare bene se conosci la versione e non ci sono troppe modifiche.

  2. Potresti usare git log per trovare i commit che riguardano la directory che contiene la libreria, quindi usarla per determinare quali modifiche sono state apportate. Questo non funzionerà se non sei sicuro al 100% che non siano state apportate modifiche prima che la biblioteca fosse inizialmente impegnata.

  3. Se sei davvero sicuro della tua suite di test automatica, puoi provare a scambiare le librerie e vedere cosa fallisce. Non lo farei se sospetti che siano state apportate modifiche ai metodi originali della libreria, ma se sono stati aggiunti solo nuovi metodi probabilmente troverai quelli mancanti.

  4. Se sei ragionevolmente sicuro che le patch fatte non interferiranno con le modifiche, potresti usare git format-patch per generare un file di patch per tutte le modifiche dalla tua versione locale, quindi git apply a apporta tali modifiche alla tua copia locale.

Mentre le opzioni 2 - 4 sono probabilmente più sofisticate, l'opzione 1 è probabilmente ciò che finirò per fare più spesso.

    
risposta data 27.03.2015 - 11:57
fonte

Leggi altre domande sui tag