Кажется, что Пластик SCM не отслеживает код, перемещенный между файлами (сравните, например, с Git) Правильно ли я, или есть способ, как включить эту функцию?Может ли пластиковый дорожковый код SCM перемещаться между файлами?
ответ
(Отказ от ответственности: Я работаю для пластиковых SCM).
Насколько я знаю, git способен отслеживать перемещенные фрагменты кода между файлами при запуске «git-вины», но не использует эту информацию во время слияния, правильно? Git способен вычислять «перемещенный фрагмент» между файлами, если это происходит при одном и том же коммитах, и это то, что он делает при обработке «вины».
Нет, пластик не в состоянии сделать это еще, что это позор, потому что мы уже делаем некоторые интересные вещи вокруг идеи:
Сначала мы имеем semantic method history, которая способна отслеживать историю данного метода, даже если он был перемещен, переименован и изменен, но всегда внутри одного и того же файла. У нас есть планы распространить это на базу репозитория, и мы действительно собирались реализовать ее к концу прошлого года, но нам пришлось отложить ее с тех пор, как мы получили некоторые другие высоконадежные функции для работы.
«История семантических методов» основана на разработанном нами SemanticMerge технологиях. Прямо сейчас он также работает внутри файла, но в планах также возникает многофайловый файл SemanticMerge (у нас даже есть рабочий прототип уже). Я ожидаю, что это будет на несколько шагов впереди других инструментов.
Применяя последние два вместе, было бы непросто сделать что-то вроде «вины с перемещенным кодом», которое, как вы указали, действительно имеет значение. Надеюсь, в ближайшие месяцы мы выпустим что-то подобное.