WinMerge — есть ли способ выровнять сдвинутые/перемещенные блоки кода?

При использовании WinMerge я просматриваю файл, в котором блок кода был вставлен в функцию, из-за которой остальная часть файла не синхронизируется при сравнении. Мой намного сложнее, но по сути такой же, как в простом примере ниже:

  FILE 1                   FILE 2
1 int main() {             int main() {
2
3   int a = 3;               int a = 3;
4   a += 5;                  for(int i = 0; i < a; ++a)
5 }                             a += i;
6                           
7                            a += 5;
8                         }

WinMerge вместо того, чтобы распознавать цикл for как вставленный блок и показывать остальную часть файла так же, будет показывать различия в строках 4,5,6,7,8. Я ожидаю, что он синхронизирует строку 4 файла 1 со строкой 7 файла 2 и сделает его более чистым. Есть ли для этого настройка? Я играл с настройкой «Перемещенный блок кода», но он просто выделяет соответствующий блок кода позже в файле, а не выстраивает их в линию.

Какие-либо предложения?


person jterm    schedule 20.03.2013    source источник
comment
После некоторых исследований это оказалось невозможным. :(   -  person jterm    schedule 01.03.2017
comment
все еще невозможно или возможно с помощью любого другого инструмента?   -  person AZ_    schedule 26.02.2018
comment
Beyond Compare — отличный инструмент для сравнения. К сожалению, это не бесплатно   -  person The Fluffy Robot    schedule 23.07.2020


Ответы (1)


Я понимаю, что вы имеете в виду, но ваш пример сработал для меня.

У меня проблема, когда сравнение синхронизируется, скажем, с пустыми строками.

присматриваюсь к сетевому фильтру...

person Rufus    schedule 09.04.2013
comment
Спасибо, за продолжение. Пример, который я привел, довольно упрощен, и он действительно может работать. Но в большом файле со многими изменениями, а также с более крупными блоками изменений кода, такими как тот, который я перечислил, он, по сути, называет весь файл другим, что делает инструмент бесполезным. - person jterm; 11.04.2013
comment
Здесь будет полезен минимальный рабочий пример. Некоторые из этих проблем с разницей сводятся к тонким изменениям, таким как возврат каретки, длина строки и т. д. - person Jess Riedel; 10.12.2014