40 votes

Comment éditer proprement un fichier diff/patch ? Existe-t-il des éditeurs de fichiers patch ?

Scénario : J'ai un fichier patch qui s'applique proprement à mes fichiers de travail, mais je ne veux pas toutes les modifications du patch.

D'habitude, je fais vim example.patch supprimer les changements non désirés et les appliquer patch -p0 -i example.patch mais parfois le patch ne s'applique pas proprement, et je dois recommencer.

Existe-t-il un éditeur de patch qui permette aux utilisateurs de modifier et de supprimer une partie du patch tout en l'appliquant proprement ?

23voto

jkp Points 20410

Si vous ouvrez un fichier diff dans emacs et mettez l'éditeur en mode "diff", vous pouvez modifier les patches et il mettra à jour les marqueurs hunk de manière intelligente. Cela fonctionne très bien pour moi !

2voto

DavidG Points 689

Quel SCM utilisez-vous ? si vous utilisez Git vous pouvez :

  • Avant de générer le patch proprement dit, utilisez git add -p pour n'ajouter que des parties de vos modifications. C'est une bonne pratique de générer des commits plus petits avec seulement les changements liés (cependant, certaines organisations n'aiment pas cela et ne permettent qu'un méga commit).

  • Si vous avez déjà le patch, appliquez-le puis utilisez git add -p pour ajouter les parties du code que vous souhaitez conserver à votre index. Vous pouvez valider et jeter le reste ( git co . ) ou le cacher ( git stash ).

modifier (en se basant sur le commentaire git add -p)

  • git add -p vous permet de diviser un hunk en plus petits morceaux en utilisant l'option s, dans les cas où vous avez besoin de plus de détails, vous devez utiliser l'option e pour éditer, ce qui vous amènera à votre éditeur gitconfig et il aura les instructions sur la façon d'éditer le hunk.

0voto

Edward Fox Points 736

Ne modifiez pas les fichiers de correction manuellement. Dans votre cas, vous pouvez essayer un outil interactif pour appliquer votre correctif morceau par morceau, comme ipatch

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X