Файл с 3 путями слияния (обновления), основанный на различиях в 2 ветвях

У меня есть 3 текстовых файла:

  1. Ветвь А, версия i (Ai)
  2. Филиал A, версия i-1 (Ai-1)
  3. Филиал B, версия i-1 (Bi-1)

Существует ли какой-либо инструмент слияния / различий для создания ветви B версии i (Bi) со следующими правилами:

  1. если Ai=Ai-1, то используйте Bi-1 в Bi
  2. если Ai<>Ai-1=Bi-1, то используйте Ai в Bi
  3. если Ai<>Ai-1<>Bi-1, то КОНФЛИКТ

Я попробовал DiffMerge из SourceGear Vault, но не смог найти такой автоматический вариант.

Эта статья вики тоже не помогла:

en.wikipedia.org/wiki/Merge_(revision_control)

1 ответ

Решение

Наш инструмент ECMerge должен сделать это (используйте Ai-1 в качестве предка, Ai слева, Bi-1 справа и укажите Bi в качестве "местоположения результата"). Вы можете сделать это на уровне файлов или папок. Если вы не хотите, чтобы попытка слияния внутри файла и напрямую сообщала о конфликте в случае любого Ai<>Ai-1<>Bi, используйте Сравнение текста / Слияния файлов / Изменения окружения: все.

Некоторые инструменты, не имеющие "производственных" возможностей, могут сделать это также, сначала скопировав версию Bi-1 в Bi, а затем спровоцировав трехстороннее слияние на Ai/Bi с Ai-1 в качестве предка.

Другие вопросы по тегам