Хобрук: Ваш путь к мастерству в программировании

Объединение 2 файлов патчей, которые исправляют несколько файлов в каталоге + разрешение конфликтов

У меня есть каталог с тысячами файлов и двумя файлами исправлений, которые относятся к одному и тому же каталогу. Каждый файл патча исправляет 20-30 файлов в каталоге или его подкаталогах.

Если я применю любой патч к общему каталогу предков, он будет успешным.

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

Моя цель - выполнить трехстороннее слияние из файлов патчей, а затем рекурсивно сравнить этот последний каталог с общим предком для создания одного файла патча.

Один из способов сделать это - создать 2 копии общего предка, применить разные патчи к 2 из копий, а затем выполнить слияние с использованием meld. meld потратил бы много времени на сравнение файлов, которые не изменились (в каталоге dir тысячи файлов). Есть ли лучший способ сделать это?

Буду признателен, если вы введете точные команды, так как я новичок в Linux.


Ответы:


1

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

24.06.2010
Новые материалы

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

Расистский и сексистский робот, обученный в Интернете
Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

Управление состоянием в микрофронтендах
Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..

Декларативное и функциональное программирование в стиле LINQ с использованием JavaScript с использованием каррирования и генератора ...
LINQ - одна из лучших функций C #, которая обеспечивает элегантный способ написания кода декларативного и функционального стиля, который легко читать и понимать. Благодаря таким функциям ES6,..

Структуры данных в C ++ - Часть 1
Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

Как я опубликовал свое первое приложение в App Store в 13 лет
Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..

Что в лицо
Очерк о возвращении физиогномики и о том, почему мы должны это приветствовать. История начинается со странной науки. Р. Тора Бьорнсдоттир, Николас О. Рул. Видимость социального класса по..