1

Я пытаюсь сгенерировать патчи для группы файлов, которые я изменил. Я использую Meld, который отлично справляется с работой над файлами в хорошем визуальном стиле, а затем позволяет мне сохранять и генерировать файл патча на основе этих изменений.

У меня проблема в том, что делать это по одному медленно. Есть ли подобный инструмент, который я могу использовать для пакетной работы? Я хочу, чтобы он рекурсивно проверял все файлы в двух каталогах и генерировал все файлы исправлений на основе полученных результатов.

2 ответа2

3

Хотя я никогда не использовал Meld, у меня есть ощущение, что он использует «diff» под одеялом. Способ, которым я всегда генерировал файлы патчей, прост:

$ diff -ruN ${dir1} ${dir2} > ${patchfile}.patch

Это генерирует один большой файл патча, который затем можно разбить как соответствующий. Чтобы сгенерировать отдельные файлы исправлений для каждого найденного изменения, вы просто должны запустить этот большой файл через сценарий, который разбивается, когда он видит новый набор изменений (сценарий, который мне не подходит, или я не знаю, так как я никогда не использовал такой как он ).

1

Вот для чего diff . patch принимает файлы вывода diff качестве входных данных. Просто запустите diff в цикле BASH для каждого из ваших файлов. Например, если исходные файлы находятся в dirA, а новые - в dirB (с теми же именами файлов), сделайте это (в ./dirA):

for n in $(ls * | grep -v ".o$"); do \
    diff -uN $n dirB/$n > $n.patch; patch $n < $n.patch; \
done 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .