2009-04-01 7 views
7

J'ai un fichier diff unifié (disons my_diff.diff), contenant la comparaison de plusieurs fichiers d'un projet. Quel serait le meilleur moyen de passer en revue tous les changements de code dans un format visuel agréable, par exemple, en utilisant meld ou vimdiff?Affichage d'un diff unifié avec d'autres outils meld/vimdiff

J'ai trouvé la façon de le faire pour un seul fichier diff (c'est-à-dire contenant la comparaison de seulement deux fichiers). Ce serait quelque chose le long des lignes:

patch -o /tmp/temp_file -i my_diff.diff ./target_file.ext 
gvimdiff /tmp/temp_file ./target_file.ext 

qui applique essentiellement le patch, mais stocke le résultat dans un fichier temporaire, et compare ensuite ce fichier à l'original.

J'ai également trouvé filterdiff utilitaire, qui peut extraire des portions de segments diff unifiées pertinentes pour un fichier. Potentiellement, il peut être utilisé avec l'exemple de code ci-dessus dans une sorte de script shell shell, dans lequel je ne suis pas si avancé.

j'envisager le processus qui se passe comme si:

  1. diff scan unifié pour les noms de fichiers modifiés
  2. Pour chaque nom de fichier, extraire la partie diff
  3. Pour chaque partie, script exécuté cité dans le début de la question.

Y at-il quelqu'un avec des compétences de script shell? :)

A

+1

J'ai posté une question similaire avant mais n'a pas été satisfait des solutions. Je veux être en mesure d'afficher un fichier diff qui contient les différences de nombreux fichiers en utilisant vimdiff comme ceci: http://codestriker.sourceforge.net/cgi-bin/codestriker.pl?topic=7759043&action=view&mode=2&fview=-1 – user14437

Répondre

1

This answer semble s'appliquer.

Aussi, consultez diff navigator

+0

On dirait que le navigateur diff fournit simplement des commandes pour contourner un patch, pas pour montrer les conséquences d'un patch de plusieurs fichiers. diff_navigator ressemble au mode Diff pour Emacs. – ashawley

+0

La réponse citée malheureusement ne fonctionne pas avec le fichier diff contenant la comparaison de plus d'un fichier – Art

0

Si vous cherchez un répertoire large solution de vim, après l'application du patch dans un répertoire temporaire, vous pouvez revoir large répertoire avec le plugin dirdiff.

http://www.vim.org/scripts/script.php?script_id=102

J'utiliser ce plugin beaucoup, son grand.

Pour automatiser la tâche de rapiéçage puis en ouvrant la vue diff il suffit d'écrire une macro