У меня есть унифицированный файл 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, указанный в начале вопроса.
Есть ли у кого-нибудь навыки работы с оболочкой?:)
А