Wie weit geht 'patch' ?

Azrael

Member
Hallo Leute

Ich hab eine grundsätzliche Frage zum Programm 'patch':
Wenn ich ein Patch-File mit 'diff' erzeuge und den daraus entstandenen Patch mit 'patch' einpspielen will, ist das ja alles kein Problem; sofern die Datei exakt die ist, die erwarte.
Nun arbeite ich zur Zeit an einem Projekt, wo es durchaus vorkommen kann, dass die User Files minimal abändern (einige Zeichen, maximal 2-3 Zeilen vielleicht).
Was macht da 'patch' ? Wie tolerant geht es mit solchen Dingen um?

Greets
Azrael
 
man patch

[...]
SYNOPSIS
patch [options] [origfile [patchfile]] [+ [options] [origfile]]...
[...]

[...]
If no original file is specified on the command line, patch will try to
figure out from the leading garbage what the name of the file to edit
is.
[...]

Hmmm....
 
Original geschrieben von asg
man patch

[...]
SYNOPSIS
patch [options] [origfile [patchfile]] [+ [options] [origfile]]...
[...]

[...]
If no original file is specified on the command line, patch will try to
figure out from the leading garbage what the name of the file to edit
is.
[...]

Hmmm....
?
Es geht mir um die Toleranz in der Datei selbst und wenn mich mein Englisch nicht grade ganz im Stich lässt, dann dreht sich dieser Text in der manpage um den Dateinamen oder irre ich mich...?
 
Original geschrieben von asg
Was ändert sich nun?
Das Patchfile oder das zu patchende file?
Das zu patchende file.
Folgendes Szenario:
Datei X wird freigegeben
User Y besorgt sich Datei X
User Y schreibt zwei drei Ergänzungen in Datei X
Patch für Datei X wird freigegeben
User Y will nun seine (veränderte) Datei X patchen
...?
 
Wenn Du einen unified diff verwendest, muss nur der Kontext, in dem der Patch angewendet wird, gleich bleiben. Veränderungen ausserhalb des Kontextes interessieren Patch dann nicht. Die Anzahl der Zeilen, die in den Kontext eingehen, kannst Du beim 'diff' Kommando über die Option '-1' bis '-9' (eine bis neun Zeilen) angeben.
 
Original geschrieben von current
Wenn Du einen unified diff verwendest, muss nur der Kontext, in dem der Patch angewendet wird, gleich bleiben. Veränderungen ausserhalb des Kontextes interessieren Patch dann nicht. Die Anzahl der Zeilen, die in den Kontext eingehen, kannst Du beim 'diff' Kommando über die Option '-1' bis '-9' (eine bis neun Zeilen) angeben.
Das wars, was ich hören wollte :D

thx
Azrael
 
Zurück
Oben