git mv и изменения и индекс сходства - PullRequest
0 голосов
/ 08 января 2019

Когда файл переименовывается с помощью git mv, при фиксации будет отображаться переименование из и переименование в, а в запросе на получение выдает то же самое, что хорошо. Но когда файл git mv ed затем изменяется, он обнаруживает, что существует определенный порог, что, когда число измененных строк превысило его, он больше не будет отображаться как переименование, вместо этого он будет отображаться как удаленный старый файл и добавленный новый файл. Итак, мой вопрос: является ли этот порог четко определенным числом? и есть ли другой способ сделать его лучше, главным образом потому, что в diff запроса pull, когда два файла не считаются переименованными, diff не будет отображаться рядом, что затрудняет просмотр.

1 Ответ

0 голосов
/ 08 января 2019

Он основан на индексе подобия diff

Если указано n, это пороговое значение для индекса подобия (т.е. количество добавлений / удалений по сравнению с размером файла).

Например, -M90% означает, что Git должен считать пару «удалить / добавить» переименованием, если более 90% файла не изменилось.

Без знака % число читается в виде дроби с десятичной точкой перед ним. То есть -M5 становится 0.5 и, таким образом, совпадает с -M50%.
Точно так же -M05 совпадает с -M5%.

Чтобы ограничить обнаружение точными переименованиями, используйте -M100%.

Индекс сходства по умолчанию составляет 50%.

В общем, лучше сначала переименовать файл в mv / rename, выполнить коммит, , а затем внести некоторые изменения.
Вы можете сделать и то и другое, если указанные изменения незначительны по сравнению с остальной частью файла (типичный случай: рефакторинг, в котором изменяется только имя пакета)

...