Re: Применить diff между двумя файлами к третьему файлу
От: chemey  
Дата: 20.03.12 16:03
Оценка: 2 (1)
Здравствуйте, iAlexander, Вы писали:

A>Можно ли на основании различий оригинального и модифицированного win-кода модифицировать linux-код аналогичным образом?

A>Иными словами результат diff -c win/source.c.orig win/source.c > source.diff применить к файлу linux/source.c аля patch?
A>Как можно было бы применять такой патч к другому файлу? — а основываясь лишь на контексте, ибо номера строчек, естественно, будут разниться для win- и linux- версий кода.

Собственно, diff и patch.
Можно попробовать взрослые варианты (трехсторонний мёрж), но для этого надо иметь "общего предка". Это исходный код до расхождения на ветки (т.е. до того, как в нем поигрались под линуксом и виндой).

Ковырять в сторону инструментов diff3, kdiff3.
diff3 даст тебе дифф-файл и в нем отметит конфликты — правим их руками и получаем готовый патч.
В kdiff3, если я правильно помню, можно сразу интерактивненько смержить.

A>У diff есть опция контекстной замены, однако в лоб воспользоваться не удалось:

A>diff -c win/source.c.orig win/source.c > source.diff
A>patch -c -o lin/source.c lin/source.c.orig source.diff
A>Ошибки типа Hunk #80 FAILED at 3299...

Если нет общего предка — можно поиграться с sdiff (интерактивный мерж). Но с большим проектом придется поколупаться.
Бзззззззжжжжж
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.