Wie unter Windows zu patchen?


16

Bei einer (Quell-) Patch-Datei ist es am einfachsten, diesen Patch auf die Quelldateien unter Windows anzuwenden.

Ein GUI-Tool, mit dem ich die unveränderten Quellzeilen visuell vergleichen kann, wäre großartig.

4

Patch for Windows ist, was Sie suchen.

+7

Beachten Sie, dass dieser Patch nicht gut mit Vista UAC funktioniert.Versuchen Sie stattdessen git-for-windows patch.exe, das mit einem Manifest geliefert wird, das das Problem löst. 08 mär. 092009-03-08 21:37:26

+1

@Macke hat Recht! Siehe meine Antwort für ein How-To mit GIT! 11 jul. 152015-07-11 14:39:01


-2

WinMerge ist genial.

http://winmerge.org/

+2

Winmerge ist großartig beim Erstellen von Patches, aber nicht beim Anwenden von Patches. Das OP fragte, wie es anzuwenden sei. Es wäre eine fabelhafte neue Funktion, wenn WinMerge einen Patch anwenden und dann die vorgenommenen Änderungen anzeigen könnte. 28 okt. 112011-10-28 20:05:51

+1

** In der WinMerge-Hilfe gefunden ** Patches können nicht mit WinMerge angewendet werden. Sie können Patches jedoch mit dem Patch-Tool aus dem GnuWin32-Projekt anwenden, da WinMerge Patch-Dateien erzeugt, die mit GNU/diffutils kompatibel sind. Siehe auch die vorhergehende Frage. 07 nov. 112011-11-07 19:41:36


14

Dank Macke, eine gute Möglichkeit, eine Patch-Datei unter Windows-Betriebssystem verwendet Git anzuwenden. Wie ich verstanden habe, ist Git eine Versionskontrolllösung wie SVN.

Hier ist ein Leitfaden einen Patch einzuspielen:

  • Zunächst einmal Laden Sie hier die neueste Version des Windows-Git Ausgabe: GIT
  • Mit der Befehlszeile, wechseln Sie in die Datei und Dateien Patch Patch
  • Jetzt können Sie die folgende Befehlszeile verwenden:
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn file.patch 

Einfach, nicht wahr?

Danke Macke


1

Nicht, dass seit Git 2.3.3 (März 2015), können Sie git apply --unsafe-paths git verwenden außerhalb eines git Repo gelten.

Siehe commit 5244a31 von Junio C Hamano (gitster)

git apply“ war nicht sehr vorsichtig beim Lesen, Entfernen, Aktualisierung und Erstellung von Pfaden außerhalb der Arbeitsstruktur (unter --index/--cached) oder dem aktuellen Verzeichnis (wenn als Ersatz für GNU-Patch).

Die Dokumentation enthält jetzt:

--unsafe-paths: 

standardmäßig ein Patch, der außerhalb des Arbeitsbereichs (entweder ein Git geregelten Arbeitsbaum oder das aktuelle Arbeitsverzeichnis, wenn „git apply“ als ein gebrauchtes wirkt Ersatz des GNU-Patches) wird als Fehler (oder Unfug) abgelehnt.

Wenn git apply als "besserer GNU-Patch" verwendet wird, kann der Benutzer die Option --unsafe-paths übergeben, um diese Sicherheitsprüfung zu überschreiben.
Diese Option hat keine Wirkung, wenn --index oder --cached verwendet wird.

Also, wenn Sie git installed haben, könnten git apply helfen, auch außerhalb eines git Repo.