2014-02-21 1 views

ответ

1

(Отказ от ответственности: Я работаю для пластиковых SCM).

Насколько я знаю, git способен отслеживать перемещенные фрагменты кода между файлами при запуске «git-вины», но не использует эту информацию во время слияния, правильно? Git способен вычислять «перемещенный фрагмент» между файлами, если это происходит при одном и том же коммитах, и это то, что он делает при обработке «вины».

Нет, пластик не в состоянии сделать это еще, что это позор, потому что мы уже делаем некоторые интересные вещи вокруг идеи:

  • Сначала мы имеем semantic method history, которая способна отслеживать историю данного метода, даже если он был перемещен, переименован и изменен, но всегда внутри одного и того же файла. У нас есть планы распространить это на базу репозитория, и мы действительно собирались реализовать ее к концу прошлого года, но нам пришлось отложить ее с тех пор, как мы получили некоторые другие высоконадежные функции для работы.

  • «История семантических методов» основана на разработанном нами SemanticMerge технологиях. Прямо сейчас он также работает внутри файла, но в планах также возникает многофайловый файл SemanticMerge (у нас даже есть рабочий прототип уже). Я ожидаю, что это будет на несколько шагов впереди других инструментов.

  • Применяя последние два вместе, было бы непросто сделать что-то вроде «вины с перемещенным кодом», которое, как вы указали, действительно имеет значение. Надеюсь, в ближайшие месяцы мы выпустим что-то подобное.