Ich weiß , es gibt mehrere Threads zu diesem bereits, aber niemand hat genau ausführlich erklärt , wie die anfängliche diff auszuführen , um die Patch - Datei zu erstellen, dann , wie gelten , dass Patch auf das ursprüngliche Verzeichnis , sich zu aktualisieren.
In meinem Fall gibt es ein Verzeichnis mit Dateien, die jeder aus dem Internet herunterladen kann. Ich habe dieses Verzeichnis übernommen und Änderungen daran vorgenommen und möchte eine Patch-Datei erstellen, damit andere sie auf das heruntergeladene Verzeichnis anwenden können, um genau das zu reproduzieren, was ich in meinem geänderten Verzeichnis habe.
Hilfe? Was muss ich der anderen Person bezüglich der Anwendung meines Patches sagen?
patch
war das Patchennew/
nichtorig/
Verzeichnis für mich, aber ich fand-d
Option , die Sie sagen könnencd
in das Verzeichnis vor dem Anwenden des Patch zuerst und dann können Sie das einstellen-p N
Argument entsprechend.Ich musste eine Patch-Datei erstellen und an jemanden senden, damit dieser sein Verzeichnis entsprechend meinem aktualisieren konnte. Es gibt jedoch viele Einschränkungen bei Diff und Patch , so dass ich Stunden gebraucht habe, um etwas so konzeptionell Einfaches herauszufinden. Absolute Pfade scheinen relativen Pfaden vorzuziehen, und viele der Optionen scheinen sich aus Nischenanwendungsfällen entwickelt zu haben. Ich habe schließlich eine Lösung gefunden, die auf der Antwort von David H basiert , mit zusätzlichen Tipps von Lakshmanan Ganapathy ):
directory
zudirectory.orig
directory
, um den gewünschten Status zu erreichendirectory.orig
bisdirectory
in,file.patch
damit der Name mit dem Empfänger übereinstimmtHier sind meine Notizen:
quelle
Schauen Sie sich die Open Source Scarab C ++ - Bibliothek an: https://github.com/loyso/Scarab
Es macht genau das, was Sie beschrieben haben. Es erstellt eine Datei pro Datei mithilfe der xdelta-Bibliothek und legt sie im Archivpaket ab. Sie können dieses Paket neu verteilen und die Differenz anwenden. Es gibt Binärdateien für Win32.
Ich bin der Autor des Scarab-Projekts.
quelle