Различать, сравнивать и объединять файлы - общие понятия - PullRequest
0 голосов
/ 12 мая 2011

Рассмотрим приведенный ниже пример без каких-либо предположений о языке или типах файлов.У меня есть:

M_old : [A,B,C]
M_new : [A,B,X]

, и теперь я хотел бы создать:

M_result : [A,B,C,X]

, который по сути является объединением M_old и M_new.Существует ли какой-либо инструмент сравнения / сравнения / слияния, поддерживающий такого рода операции - который может принимать M_old и M_new и генерировать M_result на основе приведенных выше примеров?инструмент) M_result, когда:

M_old : [A,B,C]
M_new : [A,B,C,X]

, поскольку все элементы в M_old содержатся в M_new.Но я не понимаю, как это возможно, когда некоторые элементы в M_old отсутствуют в M_new.

Так что в более общих чертах операция «слияния» поддерживает объединение только в особых условиях, как описано выше?

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

правильные инструменты слияния предложат вам решение, которое вы хотите среди других решений, это то, что делает наш инструмент ECMerge.

(Полагаю, у вас есть предок: M_ancestor: [A, B]) Ваша проблема здесь в том, что недостаточно данных, чтобы определить, что ожидается при замене (если результатом слияния будет ', C', затем ', X', ', X' then ', C' или только один или прочее).

(Полагаю, у вас есть предок: M_ancestor: [A, B, C]) другой случай, когда изменение представляет собой вставку ', X' (M_old: [A, B, C] против M_new: [A, B, C, X]), обычно разрешается путем добавления ', X', поскольку нет конкретный выбор. если предком является [A, B] только тогда, то все еще остается вопрос: должно ли объединение рассмотреть добавление ', C' или ', C, X'? тогда это не очевидно, поскольку версия с только ', C' могла бы учитывать знание ', C, X' извне системы SCC и уже удалить ', X'.

даже «умное» слияние не может сделать гадание :) 1007 *

0 голосов
/ 12 мая 2011

Если вас не интересует точный порядок результирующего списка, вы можете вычислить M_result, добавив каждый элемент в M_old, который не входит в M_new к M_new, или, альтернативно, объединяя M_new и M_old с последующим удалением дублирующих элементов (они дают точно такой же результат, если ни один из входных списков не содержит дублирующих элементов для начала).

...