2017-11-16 6 views
0

Jedes Mal, wenn ich versuche, eine Datei aus einem Ordner zu kopieren, etwas ändern und patchen, versucht es immer in die neue Datei zu patchen. Warum?Diff und Patch funktionierte nicht wie erwartet

$ mkdir test 
$ vim test/1 (Write something) 
$ cp test/1 ./1 
$ vim 1 (Do some change) 
$ diff -Naur test/1 1 > patch 
$ patch -p0 < patch 
    pathing file 1 
    Reversed (or previously applied) patch detected! Assume -R? [n] 
+0

BTW Linux hat [Verzeichnisse] (https://en.wikipedia.org/wiki/Directory_ (Computing)), keine Ordner –

Antwort

0

lesen sorgfältigpatch(1) und diff(1).

patch funktioniert (standardmäßig) im aktuellen Arbeitsverzeichnis. Aber Sie rufen diff auf (ein Patch von) ein anderes Verzeichnis auf. Versuchen Sie mit diff -Naur 1 test/1 > patch, könnte es besser funktionieren. Die Reihenfolge der Argumente zu diff zählt eine große Menge!

+0

'Diff-Naur 1 Test/1> Patch' und' Diff-Naur Test/1 1> Patch' haben dasselbe Ergebnis. Sie alle versuchen, 1 zu bearbeiten, warum ... – Morland

+0

Ich beobachte das nicht. Bist du dir wirklich sicher? Hast du 'diff -Naur 1 test/1> patcha' und auch' diff -Naur test/1 1> patchb' versucht und dann 'diff patcha patchb' oder' cmp patcha patchb' ausgeführt, um zu prüfen, ob sie nicht gleich sind oder vergleichen Sie ihre Prüfsumme, z wie von 'md5sum patcha' und' md5sum patchb' gegeben? –

+0

BTW gute Redakteure haben auch die Fähigkeit, Unterschiede zu zeigen. Zum Beispiel hat 'emacs' einen sehr nützlichen * ediff * Modus. Überlegen Sie, das zu verwenden –