Файл с 3 путями слияния (обновления), основанный на различиях в 2 ветвях
У меня есть 3 текстовых файла:
- Ветвь А, версия i (Ai)
- Филиал A, версия i-1 (Ai-1)
- Филиал B, версия i-1 (Bi-1)
Существует ли какой-либо инструмент слияния / различий для создания ветви B версии i (Bi) со следующими правилами:
- если Ai=Ai-1, то используйте Bi-1 в Bi
- если Ai<>Ai-1=Bi-1, то используйте Ai в Bi
- если 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 в качестве предка.