2008-08-21 4 views
16

Étant donné un fichier de correctif (source), quel est le moyen le plus simple d'appliquer ce correctif sur les fichiers source sous Windows?Comment patcher sur Windows?

Un outil GUI où je peux comparer visuellement les lignes de source inchangées-changées serait grand.

Répondre

4

Patch for Windows est ce que vous cherchez.

+7

Notez que ce patch ne fonctionne pas bien avec le UAC de Vista.Essayez plutôt Patch.exe de Git-for-windows, qui est livré avec un manifeste qui résout le problème. – Macke

+1

@Macke a raison! Voir ma réponse pour un how-to avec GIT! –

-2

WinMerge est génial.

http://winmerge.org/

+2

Winmerge est excellent pour créer des correctifs, mais pas pour les appliquer. Le PO a demandé comment l'appliquer. Ce serait une nouvelle fonctionnalité fabuleuse si WinMerge pouvait appliquer un correctif et ensuite montrer les changements qui ont été faits. –

+1

** Trouvé dans l'aide de WinMerge ** Les correctifs ne peuvent pas être appliqués avec WinMerge. Toutefois, vous pouvez appliquer des correctifs à l'aide de l'outil de correctif du projet GnuWin32, car WinMerge produit des fichiers de correctifs compatibles avec GNU/diffutils. Aussi, voir la question précédente. –

14

Merci à Macke, une bonne façon d'appliquer un fichier correctif sous Windows OS utilisant Git. Comme je l'ai compris, Git est une solution de contrôle de version comme SVN.

Voici un guide pour appliquer un patch:

  • Tout d'abord, téléchargez la dernière version de Windows Git Édition ici: GIT
  • Avec l'invite cmd, répertoire de modification du fichier patch et les fichiers de patch
  • maintenant, vous pouvez utiliser la ligne de commande suivante:
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn file.patch 

Simple n'est-ce pas?

Merci Macke

1

pas que depuis Git 2.3.3 (Mars 2015), vous pouvez utiliser git apply --unsafe-paths utiliser git apply en dehors d'un git.

Voir commit 5244a31 par Junio C Hamano (gitster)

« git apply » n'a pas été très attention à la lecture de, la suppression, la mise à jour et la création de chemins en dehors de l'arbre de travail (sous --index/--cached) ou le répertoire courant (lorsqu'il est utilisé en remplacement de GNU patch).

La documentation comprend maintenant:

--unsafe-paths: 

Par défaut, un patch qui affecte en dehors de la zone de travail (soit un arbre de travail sous contrôle Git, ou le répertoire de travail courant lorsque « git apply » est utilisé comme remplacement du patch GNU) est rejeté comme une erreur (ou un méfait). Lorsque git apply est utilisé comme "meilleur correctif GNU", l'utilisateur peut passer l'option --unsafe-paths pour remplacer cette vérification de sécurité.
Cette option n'a aucun effet lorsque --index ou --cached est utilisé.

Donc, si vous avez git installed, git apply pourrait aider, même en dehors de toute git.