Управление ручным выравниванием в 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

Таким образом, ему удается выполнить выравнивание на одной строке, но затем он сдвигает остальную часть кода вниз.

Как мы можем использовать ручное выравнивание, чтобы получить желаемый результат? Изменение настроек для изменения параметров выравнивания также не приводит к желаемому результату. (Также обратите внимание: тело и измененное тело очень похожи, поэтому совпадение нельзя пропустить)

Это публикация на их форуме, где упоминается отдельное построчное выравнивание, но это было бы очень утомительно для более длинных разделов.

Редактировать: Если указанное выравнивание невозможно в текущей версии, можно ли отключить автоматически синхронизированную прокрутку панелей редактора ввода и вывода, чтобы пользователь мог одновременно просматривать разделы невыровненного кода. Эти разделы не будут выровнены программой, но будут считаться выровненными с точки зрения пользователя.

0 ответов

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