Ich habe eine Patchdatei wie folgt:
%Vor%Um es auf die SVN-Arbeitskopie anzuwenden, verzweige ich es mit:
%Vor%Dann habe ich es versucht
%Vor%aber SVNs Ausgabe ist
%Vor%für jede Datei?
Was könnte dazu führen, dass SVN den Patch zurückweist? Ich bin auf einem UNIX-Rechner, aber Patch und Repository haben Windows-Zeilenenden ...
Danke für Ihre Hilfe!
Der Tipp dos2unix
war nicht schlecht, aber hat das Problem nicht wie vorgeschlagen gelöst.
Was ich getan habe, um alle Dateien tatsächlich zu patchen:
%Vor% Im Grunde scheint patch
ein Problem bei der Behandlung von CR/LF
-Zeilen unter Unix zu haben. Konvertieren Sie es in LF
, dann patchen und konvertieren Sie es nach dem Patchen zurück.
Dank an Stefan.
Bearbeitet:
Wir haben also festgestellt, dass patch
kein SVN-Tool ist. SVN hat keinen direkten Einfluss darauf, außer es hat die Patch-Datei falsch erstellt.
Sind Sie sicher, dass die Patchdatei vom Stamm erstellt wurde? Wenn dies der Fall ist, sollte Ihre Kopie identisch mit der sein, auf der der Patch basiert, daher sollte es keinen Grund geben, dass sie fehlschlägt. Die einzige Schlussfolgerung, die mir einfällt, ist, dass mit der Patch-Datei etwas nicht stimmt. Es passt nicht zu Ihrer Datei.
Bestätigen Sie, dass die Datei dir / file.xml in Ihrer Arbeitskopie wirklich
enthält %Vor%beginnt bei Zeile 7. (Ich gehe davon aus, dass der Code in Ihrer Frage sowieso nur eine bearbeitete Kopie ist, weil es dort 7 Zeilen geben sollte, nicht 4.) Das heißt, stimmt der Inhalt der Datei mit dem Inhalt überein? der Fleck? Achten Sie besonders auf Abstände und Linienenden. Wenn dies der Fall ist, sollte es keinen Grund geben, warum der Patch dieses Brocken nicht bestehen könnte.