Существует ли инструмент слияния, который сравнивает функции вместо номеров строк? - PullRequest
3 голосов
/ 25 января 2012

Я использую kdiff3, но, как я недавно столкнулся с проблемой, когда реорганизация моих методов, которые имеют общую функциональность (все мои встречи, все мои сообщения вместе, проверка и т. Д.), Приводит к тому, что он путается до такой степени, чтоЯ делаю все вручную с помощью блокнота.Бесплатно или платить не имеет большого значения.

Ответы [ 2 ]

1 голос
/ 26 января 2012

Наши Smart Differencer инструменты сравнивают код на основе структуры кода, а не строк.Они используют синтаксические анализаторы реального языка, чтобы подобрать структуру, поэтому они не зависят от форматирования, комментариев, различных форматов, но идентичных литералов и т. Д. Об изменениях сообщается в терминах концептуальных изменений (перемещение, копирование, удаление, переименование идентификатора вблок) на языковые элементы (литералы, переменные, выражения, операторы, блоки, функции, ...).Доступны версии для многих языков.

Если вы переместите полный метод куда-нибудь, он скажет вам, что вы переместили метод, а не то, что вы удалили 27 строк здесь и вставили 27 строк (которые могут совпадать или не совпадать)) там.

Не совсем понятно, что иногда даже порядок объявлений не важен.В нашем списке дел.

В настоящее время он не интегрирован в инструмент слияния;просто делает различия.Также в нашем списке дел.

0 голосов
/ 25 января 2012

Нет сейчас. Я слышал о начале планирования нового diff, который работает по логическим блокам, а не по строкам, но это было на уровне слухов

В текущем состоянии я вижу только один выбор как лучший подход (и это только для Windows-решения): CompareIt! как diif-инструменты - он может обнаруживать (до некоторой степени) и показывать «перемещенный» блокирует «внутренний файл» и наиболее тщательно обрабатывает ситуацию «удаления фрагмента» + «добавление нового фрагмента в старые строки», где все остальные пытаются (KDiff, BC, Araxis Merge, P4merge, Diffuse Merge, SourceGear Diffmerge) отличается, чтобы показать этот блок как "агрессивные правки".

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