Ich versuche einen Patch wie hier vorgestellt zu machen .
Angenommen, ich habe zwei Verzeichnisse pp1(modified version)
und pp0(clean version)
erstelle eine Patch-Datei pp0.patch
mit dem folgenden diff
Befehl:
diff -crB pp0 pp1 > pp0.patch
Das Problem ist, wenn eine Datei nur in pp1 vorhanden ist, wird sie nicht in den Patch aufgenommen. Wie kann man das umgehen?
UPDATE :
Ich wechsle zuerst in das Verzeichnis von pp0 und teste, ob der Patch erfolgreich sein wird
patch --dry-run -p1 -i /path-to-pp0.patch
Obwohl ich --new-file
dem diff
Befehl hinzugefügt habe , werden diese nur in pp1
nicht im Ergebnis aufgeführt
UPDATE :
Ich habe also versehentlich die falsche Datei gepatcht
diff -crb --new-file pp1 pp0 > pp0.patch
oder
diff -crNb pp1 pp0 > pp0.patch
Wird besorgt
Die sofortige Antwort:
diff -N
Wie von Pootzko erklärt . Sie werden feststellen, dass viele Patches von erstellt wurdendiff -urN
.Was kann Ihr Leben verbessern: Verwenden Sie ein Tool zur Versionskontrolle. Wenn Sie keine kennen, beginnen Sie mit einem der drei wichtigsten verteilten Revisionskontrollsysteme , Bazaar , Git oder Mercurial . Checken Sie die saubere Version ein, arbeiten Sie, checken Sie Ihre Arbeit so oft ein, wie Sie möchten, und fragen Sie Ihr Versionskontrollsystem nach einem Unterschied zwischen der sauberen Version und Ihrer Arbeit.
quelle