Git и последствия рефакторинга
Поиграйся с опцией --rename-threshold для git merge.
Спасибо - похоже, это поможет
stackoverflow :
Это действительно так? Имхо, очень странно. Mercurial, насколько я знаю, эту информацию хранит.
Кстати, пока гуглил на тему тему, наткнулся на обсуждение на
Да, так.git commit never detects renames. It just writes content to the repository. Renames (and copies as well) are only detected after the fact, i.e. when running git diff, git merge and friends. That's because git does not store any rename/copy information.
Это действительно так? Имхо, очень странно. Mercurial, насколько я знаю, эту информацию хранит.
да, в гите каджый коммит сылается на снапшот дерева. никаких дельт нигде не хранится.
Оставить комментарий
ifani
Подскажите, плиззз, как быть в следующей ситуации:Я отрефакторил проект, разбив классы на интерфейс и реализацию, при этом переименовав изначальные классы в ClassNameImpl и создав интерфейсы ClassName.
То есть если раньше было только
то стало
Сейчас при попытке смерджить изменения с основной веткой обнаружил, что для некоторых классов git понимает, что реализация была переименована и был создан одноименный интерфейс, то есть
а для других считает, что всё содержимое файла с реализацией было заменено на интерфейс и был создан новый файл с реализацией, то есть
Можно ли это как-то поправить?