Управление ручным выравниванием в 3-стороннем слиянии Beyond Compare
При выполнении трехстороннего слияния в Beyond Compare мы можем получить следующее смещение из-за сходства кода (X - это удаленные сегменты кода, и показаны только два файла):
/* XXXXXXXXXXXXXXXXX
somefunc() somefunc() <---2
{ {
body body
... ...
} }
*/ XXXXXXXXXXXXXXXXX
somefunc() <---1 XXXXXXXXXXXXXXXXX
{ XXXXXXXXXXXXXXXXX
modified body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
...next segment ...next segment
Желаемое выравнивание выглядит следующим образом:
/* XXXXXXXXXXXXXXXXX
somefunc() XXXXXXXXXXXXXXXXX
{ XXXXXXXXXXXXXXXXX
body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
*/ XXXXXXXXXXXXXXXXX
somefunc() somefunc()
{ {
modified body body
... ...
} }
...next segment ...next segment
Так что я делаю ручное выравнивание между позицией-2 и позицией-1, и на самом деле получаю:
/* XXXXXXXXXXXXXXXXX
somefunc() XXXXXXXXXXXXXXXXX
{ XXXXXXXXXXXXXXXXX
body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
*/ XXXXXXXXXXXXXXXXX
somefunc() somefunc()
XXXXXXXXXXXXXXXXX {
XXXXXXXXXXXXXXXXX body
XXXXXXXXXXXXXXXXX ...
XXXXXXXXXXXXXXXXX }
{ XXXXXXXXXXXXXXXXX
modified body XXXXXXXXXXXXXXXXX
... XXXXXXXXXXXXXXXXX
} XXXXXXXXXXXXXXXXX
...next segment ...next segment
Таким образом, ему удается выполнить выравнивание на одной строке, но затем он сдвигает остальную часть кода вниз.
Как мы можем использовать ручное выравнивание, чтобы получить желаемый результат? Изменение настроек для изменения параметров выравнивания также не приводит к желаемому результату. (Также обратите внимание: тело и измененное тело очень похожи, поэтому совпадение нельзя пропустить)
Это публикация на их форуме, где упоминается отдельное построчное выравнивание, но это было бы очень утомительно для более длинных разделов.
Редактировать: Если указанное выравнивание невозможно в текущей версии, можно ли отключить автоматически синхронизированную прокрутку панелей редактора ввода и вывода, чтобы пользователь мог одновременно просматривать разделы невыровненного кода. Эти разделы не будут выровнены программой, но будут считаться выровненными с точки зрения пользователя.