Изменить порог индекса подобия для git merge с переименованием (например, -M [n] --find-renames [= n] в diff) - PullRequest
9 голосов
/ 12 января 2012

У нас есть несколько вариантов конфигурации для эвристики обнаружения переименования во время diff (log, show) и merge:

diff.renameLimit Количество файлов, учитываемых при выполнении обнаружения копирования / переименования; эквивалентно опции git diff -l.

diff.renames Сообщает git обнаруживать переименования. Если задано какое-либо логическое значение, будет включено базовое обнаружение переименования. Если установлено значение «копии» или «копия», оно также будет обнаруживать копии.

merge.renameLimit Количество файлов, учитываемых при выполнении переименования во время слияния; если не указан, по умолчанию используется значение diff.renameLimit.

Также у нас есть возможность контролировать, когда файлы с различным содержимым считаются переименованными для diff (log, show):

-M [] (или --find-renames [= ])

Определить переименования. Если указано n, это пороговое значение индекса сходства (то есть количество добавлений / удалений по сравнению с размером файла). Например, -M90% означает, что git должен считать пару «удалить / добавить» переименованием, если более 90% файла не изменилось.

ВОПРОС : Как контролировать пороговое значение индекса сходства для слияния? Кажется, он доступен только в качестве параметра командной строки для diff и некоторых других, но не merge. И нет ключа конфигурации даже для diff. Это не применимо для merge по какой-то причине?

1 Ответ

4 голосов
/ 04 апреля 2012

Если вы объединяетесь с помощью стратегии рекурсивного объединения (по умолчанию), вы можете использовать опцию переименования-порога:

git merge -X rename-threshold=80 branch
...