37 votes

Un outil de patch visuel pour Linux

J'ai un fichier et un patch pour ça. Je voudrais appliquer visuellement le correctif, voir comment les modifications proposées par le correctif apparaissent dans leur contexte, apporter des corrections et enregistrer le fichier résultant.

Quel outil peut le faire?

Aucun des outils de diff visuels (c'est-à-dire fusionner, diffuser, différer) ne fait ce que je veux: ils ne fonctionnent pas avec les correctifs, ils fusionnent simplement des fichiers entiers.

24voto

initzero Points 534

J'aime vraiment Kompare. C'est juste une (très belle) de l'interface graphique pour diff.

http://www.caffeinated.me.uk/kompare/

sudo apt-get install kompare

La création et l'application des correctifs

Kompare est capable de créer un fichier de correctif qui répertorie uniquement les différences entre les deux par rapport fichiers texte et Un B. en Outre, Kompare pouvez appliquer un patch fichier qui a été créé de cette façon à un fichier d'origine et, de cette manière, recalculer le contenu de la fichier correspondant B. C'est un confortable utilitaire pour passer d'une version corrigée d'un fichier à une ami qui a déjà une ancienne version d'un même fichier, parce que seulement la (petite) fichier de patch a pour être livré et le récepteur peut générer le fichier corrigé par l'application de correctifs à l'original fichier.

Les patchs créés et appliqués par Kompare sont compatibles avec les fichiers de patch généré ou appliqué par la commande l'interface de ligne de diff d'utilité, car Kompare est en fait simplement un graphique avant la fin du diff et les patchs sont créé et appliqué par le patch, qui est appelée par Kompare.

15voto

ephemient Points 87003

Voir utiliser vimdiff avec un fichier diff .

 gvim original.file + 'vert diffpa the.patch' 

Cela ouvrira GVim et divisera la fenêtre, avec l'original à gauche et le patch appliqué à droite. Vous pouvez ensuite ajouter, supprimer ou modifier des morceaux et enregistrer les modifications. (Eh bien, si vous voulez créer un new.patch vous devrez exécuter de nouveau diff , mais ce n'est pas difficile.)

7voto

Pascal Cuoq Points 39606

Vous pouvez utiliser le mode ediff emacs . Il vous permet de voir et de valider chaque morceau de manière interactive. Pour ce que ça vaut, j'ai ce script pratique dans mon répertoire ~ / bin:

 #!/bin/bash
if [ "$1" == "--text" ] ; then shift; fi
if diff --brief $1 $2 ; then 
exit 0 
else
emacs -fn 8x13bold --eval '(ediff-files "'$1'" "'$2'")'
fi
 

4voto

gorlok Points 661

Autre option: si vous utilisez Eclipse, vous pouvez générer et appliquer visuellement des correctifs.

1voto

ddaa Points 19102

L'idée de visual diff outils que vous pouvez:

  1. faire une copie de sauvegarde du fichier patché (ou une nouvelle vierges de l'extraction de la totalité de l'arbre)
  2. appliquer le patch
  3. utiliser le visual diff outil pour examiner les changements dans le contexte
  4. faire tout changement souhaité pour le fichier patché dans le visual diff outil.

Certains outils, comme la combinaison, ou diffuse automatiquement les diff contre la précédente version des fichiers.

L'idée clé est que vous POUVEZ appliquer le patch, ils éliminer tout ce qui ne vous plait pas, tant que vous avez une copie de sauvegarde, ou si vous travaillez sur une nouvelle caisse.

Si vous vous sentez plus à l'aise avec la lecture et la modification de diff unifié, et veulent juste avoir plus de contexte pour le diff, emacs est assez caractéristique unique, qui est à côté de l'erreur de suivi de mode pendant la visualisation d'un fichier diff (diff mode majeur). Que montre le contexte d'un diff de ligne dans le fichier cible.

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