2010-06-24 6 views
0

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

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

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

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

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

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

ответ

0

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