Patch erstellen mit patch oder diff

stäubel

stäubel

Doppel-As
Hallo zusammen

Versuche gerade die Sache mit den Patches wirklich zu verstehen,
denn ich habe nicht viel Erfahrung damit.

Habe folgende zwei Beispiel-Dateien gemacht:

hello1.c

Code:
#include<stdio.h>

void main(void) {

printf("Hallo Forum\n");
printf("Hallo Forum\n");

}


hello2.c

Code:
#include<stdio.h>

void main(void) {

printf("Hallo Forum\n");
//printf("Hallo Forum\n");

}

Wenn ich den Patch wie folgt mache funktionierts problemlos:
Code:
diff -uN hello1.c hello2.c > patch

Wenn ich es aber mit patch statt diff versuche, erscheint eine Fehlermeldung:
Code:
patch -uN hello1.c hello2.c > patch
patch: **** Only garbage was found in the patch input.

Müssten die beiden Funktionen nicht das gleiche machen?

Sorry die Anfängerfrage.

Grüsse Stäubel
 
Morgen,

nein müssen sie nicht

man patch
...
patch takes a patch file patchfile containing a difference listing produced by the diff program and applies those differences to one or more original files, producing patched versions.
...

Mit patch spielst du die Unterschiede zurück in eine Datei.

Code:
$diff -uN hello.1.c hello.2.c > patch

$ patch hello.1.c patch
patching file hello.1.c

$ cat hello.1.c
#include<stdio.h>

void main(void) {

printf("Hallo Forum\n");
//printf("Hallo Forum\n");

}

mfg
HeadCrash
 
Zuletzt bearbeitet:
Vielen Dank für die Hilfe.

Ich war eben verwirrt, denn ich hatte auf einer Webseite gesehen,
dass man ein Patch auch mit patch machen kann:

http://www.linuxforums.org/articles/using-diff-and-patch_80.html schrieb:
Create the patch.

Code:
patch -uN patchtest.txt patchtest1.txt > patch.txt

Aber ich kannte eigentlich nur die diff Varaiante und dachte,
vielleicht kann das patch ja auch. Aber jetzt ist alles klar.
Scheint also ein Schreibfehler zu sein.

patch kann also definitiv keine Patches erstellen,
sondern diese nur anwenden.

Vielen Dank!!

Grüsse Stäubel

N.B.
Ups steht sogar ganz unten auf der genannten Webseite unter correction,
dass dies ein Fehler ist. Hatte ich übersehen.
 
Zuletzt bearbeitet:
Kleiner Ratschlag zum Abschluß (auch für Querleser):

Patches immer im "unified format" erstellen (Option "-u" beim Ausführen von diff), das macht erfahrungsgemäß am wenigsten Ärger.
 

Ähnliche Themen

Unix Webserver mit HTML Seite erstellen

Prozesskommunikation mit PIPES - wie funktioniert das?

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

Aufgabe in C

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Zurück
Oben