Как удобнее отслеживать перенос куска текста/кода в другую часть файла?
И в тексте и в коде, часто какой-то кусок просто переносится из одной части файла в другую. Или даже между файлами.
В стратегии diff которая идёт по умолчанию, это помечается как "удалено тут, добавлено там". И когда подобных переносов в файле много, то становится тяжело понять, что куда перенеслось и какие изменения были помимо переносов.
Особенно это актуально для текста, например документации, когда перенос раздела или абзаца в другую часть документа не так важен, как остальные изменения.
Есть ли способы (стратегии, плагины, программы), смотреть diff, где будет подсвечиваться не только "Добавлено", "Удалено", "Изменено", но и ещё "Перенесено" (помогая увидеть, куда перенесено)? В идеале, чтобы эти "статусы" могли комбинироваться, как например, вся помечается строчка "Изменено", а внутри, конкретное слово/символ дополнительно выделяется, как "Удалено" или "Добавлено".
Сравнивать надо markdown-файлы, которые версионируются в Git (review проводится Gerrit, в идеале, вообще прямо там бы сравнивать).
Сергей: у вас файл на 1000 строк. Вы поменяли пару кусков в 200 строк местами. Просто местами.
Чем не атомарный коммит? Фактически это 2 операции копипаста. Поможет это при просмотре? Кусок, помеченный удалённым, будет помечен добавленным в другом месте. А теперь, допустим, в этих 200 строках вы случайно добавите точку? Поможет вам Diff её найти? Нет.
DeepGit делает именно то, что вам хочется, помогает исследовать перемещения кода. Он сразу интегрирован в лучший клиент SmartGit, также можно прикрутить в IDE от JetBrains и Eclipse.