Можно ли «злоупотреблять» функцией переименования Mercurial& #39; для отслеживания перемещения блоков кода?

Иногда я обнаруживаю, что у меня есть файл, который со временем разросся и содержит больше классов/функций/чего угодно, чем мне нравится. Пришло время провести рефакторинг! Обычно в этом случае я обнаруживаю, что один мой файл становится несколькими :плюс несколько других файлов, каждый из которых содержит отдельные сегменты файла.

К сожалению, простое создание этих новых файлов немного "ломает" историю. --Трудно сказать, что эти функции изначально взяты из другого файла. Еще хуже, если при рефакторинге в код были внесены какие-либо другие изменения.

Один из моих коллег обнаружил, что он может «злоупотреблять» функцией переименования, делая что-то вроде этого:

hg rename --after original_file new_file_1
hg rename --after original_file new_file_2
hg rename --after original_file new_file_3
hg add original_file

В результате каждый из новых файлов выглядит как переименование с удаленной остальной частью файла, а исходный файл похоже, что он потерял удаленные блоки. Пока это кажется идеальным. Тем не менее, я обеспокоен тем, что эти множественные переименования вызовут некоторые запутанные слияния в будущем.

Есть ли что-то неправильное в подходе «множественных переименований»?

13
задан Martin Geisler 30 March 2012 в 12:33
поделиться