Utilizzare questa:
$ diff -u 1.php 1a.php > customizations.patch
che vi darà un diff unificata di tutte le modifiche tra il vaniglia e copia personalizzata della versione 1.0 del file.
Si può cercare di applicare le modifiche al nuovo file, 2.php, in questo modo:
$ patch -p0 2.php customizations.patch
Si noti, tuttavia, che questo sarà probabilmente riuscirà con un sacco di blocchi rifiutati se il codice sorgente è cambiato troppo Tuttavia, ottenere questo diff unificato potrebbe rivelarsi utile poiché è possibile quindi reintegrare manualmente le personalizzazioni per adattarle al nuovo codice sorgente.
Quello che farei, se è possibile, è ottenere una copia locale del repository di controllo versione che utilizza il progetto del software libero. Quindi, creane una succursale e integra le tue personalizzazioni, quindi verifica se puoi portare avanti le cose unendo i commit upstream da quel momento nel tuo ramo. Senza vedere tutte le cose coinvolte, non posso né dirti che sarà un processo banale né complesso, ma potrebbe essere più semplice dell'utilizzo di diff e patch.
Nota che non funziona per più file; se hai bisogno di farlo in futuro con più file, ti consigliamo di usare diff su due diversi set di file (con lo stesso nome) in due diversi alberi di directory. Ho pensato che potrebbe non essere una cattiva idea menzionarlo ora, nel caso in cui si rivelasse una situazione che incontrerai in futuro.
fonte
2010-12-10 18:38:04
Grazie, l'approccio diff/patch ha funzionato perfettamente. Anche se un paio di hunk sono falliti, questi erano abbastanza semplici da unire manualmente. – gjb
Sei il benvenuto. –