Frage

Angenommen, ich einen Patch haben, die mit -p0 angewendet werden kann, ist es ein Tool, um automatisch diesen Patch in einen -p1 Patch zu verwandeln. Zum Beispiel der Umwandlung

Index: stdio-common/_i18n_number.h
===================================================================
--- stdio-common/_i18n_number.h (revision 8348)
+++ stdio-common/_i18n_number.h (working copy)
@@ -116,7 +116,7 @@ _i18n_number_rewrite (CHAR_T *w, CHAR_T
 #else

 static CHAR_T *
-_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr)
+_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end)
 {
   return w;
 }

In der gleichen Patch aber mit anderen Verzeichnisnamen (das eine bemerken, b) vor dem Pfad

Index: stdio-common/_i18n_number.h
===================================================================
--- a/stdio-common/_i18n_number.h (revision 8348)
+++ b/stdio-common/_i18n_number.h (working copy)
@@ -116,7 +116,7 @@ _i18n_number_rewrite (CHAR_T *w, CHAR_T
 #else

 static CHAR_T *
-_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr)
+_i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end)
 {
   return w;
 }
War es hilfreich?

Lösung

Sie einfach die Dateinamen in den diff Chunk-Header Transformation ist gut genug.

sed \
    -e 's!^--- !&a/!' \
    -e 's!^+++ !&b/!' \
    < p0.patch \
    > p1.patch

Für andere Patch Mangeln Tools, würde ich vorschlagen patchutils , aber dieses ist so einfach dass es keine vorbestehende Dienstprogramm für sie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top