Предупреждение GIT: слишком много файлов пропускают неточное обнаружение переименования

Я знаю, что предел переименования по умолчанию равен 100 и может увеличить это значение с помощью конфигурации " diff.renamelimit config"

Что беспокоит, если эта конфигурация не настроена, будет ли неправильное слияние, любой отсутствующий код? Я пытаюсь объединить (git merge) 2 ветви, которые имеют огромные изменения.

может ли кто-нибудь пролить больше света на эту настройку конфигурации?

2 ответов


ваш контент в безопасности.

как я понимаю, git на самом деле не имеет никакого понятия о первоклассном rename операция (только bzr делает, из больших 3 DVCSs):mv сахар поверх основного механизма, который в основном является add и rm. С git может отслеживать содержимое, которое изменяется во время таких операций, хотя он может использовать эвристику, чтобы угадать, когда add и rm на самом деле mv. Так как это требует гораздо больше работы чем просто показывать, что git фактически записано-документы для git-diffобъяснить, что это "...требуется O (n^2) Время обработки, где n-количество потенциальных целей переименования/копирования" -git не будет пытаться, когда слишком много файлов участвуют. Параметр, который вы упомянули, просто управляет этим порогом.


в случае, если это кому-то поможет, у меня было много файлов (сотни, если не тысячи) в одной ветви, которые еще не были в другой ветви. Бег!--3-->

$ git config merge.renamelimit 15345

сделал ошибку ниже при слиянии go away

$ git merge master
.
.
.
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 15345 and retry the command.