лучший инструмент слияния для изменения порядка кода? - PullRequest
2 голосов
/ 29 декабря 2010

У меня есть один файл C ++, который мне пришлось переупорядочить, и я хотел бы использовать инструмент сравнения, чтобы убедиться, что я переупорядочил код и ничего не испортил. Например:

старый:

A1
A2
A3
B1
B2
B3
C1
C2
C3
C4
D1
D2

новый:

D1
D2
A1
A2
A3
C1
C2
C3
C4
B1
B2
B3

В идеале инструмент сравнения будет автоматически определять, что я переупорядочил блоки A, B, C, D, но каждый блок не поврежден. Если он не может сделать это автоматически, это нормально, но мне нужна возможность помочь ему, поэтому, как только я определю переупорядочение блока, он подтвердит, что это просто переупорядочение, а не изменение.

Мы используем Beyond Compare, но, похоже, у него нет этой функции.

Есть ли инструмент (надеюсь, бесплатный), который делает это?

Ответы [ 2 ]

1 голос
/ 30 декабря 2010

По сути, вы хотите знать, перемещали ли вы языковые структуры вокруг.Так что упорядоченный "line diff" (например, что дает вам unix diff и что многие инструменты слияния реализуют) - это не то, что вам нужно.

Наш SmartDifferencer не является инструментом слияния, но не ориентированный на строку инструмент сравнения, который, вероятно, может ответить на ваш вопрос.

SmartDifferencer сравнивает синтаксические деревья (выражение, оператор, блок, метод, ...) для вашего исходного кода и сообщает вамразличия с точки зрения действий над вашим кодом (вставка, удаление, перемещение, копирование, копирование с переименованием, переименование внутри блока).

SmartDifferncer доступен для многих языков (включая C ++), а также для различных диалектов для этих языков.

1 голос
/ 29 декабря 2010

Я думаю, что есть некоторые инструменты, которые могут вам помочь.Мне знаком только Linux meld .Снимки экрана должны дать вам хорошее представление о том, что искать.

На основании некоторых снимков экрана выглядит, что Araxis Merge и ECMerge имеют схожие функции..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...