Просмотр унифицированного diff с другими инструментами meld/vimdiff

У меня есть унифицированный файл diff (скажем my_diff.diff), содержащий сравнение нескольких файлов из проекта.

Каким будет лучший способ просмотреть все изменения кода в хорошем визуальном формате, например, используя meld или vimdiff?

Я выяснил, как это сделать для одного файла diff (т.е. содержит сравнение только двух файлов). Это будет что-то вроде строк:

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

Что по существу применяет патч, но сохраняет результат в временном файле, а затем сравнивает этот файл с исходным.

Я также нашел утилиту filterdiff, которая может извлекать части объединенных сегментов diff, относящихся к файлу. Потенциально его можно использовать с приведенным выше примером кода в некотором стиле скриптов оболочки, в которых я не настолько продвинутый.

Я бы предусмотрел, что процесс происходит так:

  • Сканировать единый diff для измененных имен файлов
  • Для каждого имени файла извлеките часть diff
  • Для каждой части запустите script, указанный в начале вопроса.

Есть ли у кого-нибудь навыки работы с оболочкой?:)

А

Ответ 2

Если вы ищете решение с широким vim для каталога, после применения патча к временному каталогу вы можете просмотреть каталог с плагином DirDiff.

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

Я использую этот плагин много, его отличный.

Чтобы автоматизировать задачу исправления, затем открыв представление diff, просто напишите макрос