Предупреждение GIT: слишком много файлов пропускает неточное обнаружение переименования
Знаю, что предел переименования по умолчанию равен 100 и может увеличить это значение, используя config "diff.renamelimit config"
Что беспокоит, так это то, что если этот конфиг не настроен, произойдет ли неправильное слияние или какой-либо недостающий код? Пытаюсь слить (git merge) 2 ветки с огромными изменениями.
Может кто-нибудь пролить больше света на этот параметр конфигурации?
2 ответа
Ваш контент в безопасности.
Как я понимаю, git
на самом деле не имеет никакого понятия о первоклассном rename
операция (только bzr
делает, из 3 больших DVCS): mv
сахар на вершине основного механизма, который в основном является add
и rm
, поскольку git
может отслеживать контент, который изменяется во время таких операций, однако он может использовать эвристику, чтобы угадать, когда add
и rm
на самом деле mv
, Так как это требует гораздо больше работы, чем просто показ git
фактически записано - документы для git-diff
объясните, что это "... требует O(n^2) времени обработки, где n - количество потенциальных целей переименования / копирования" -git
не будет пробовать, когда задействовано слишком много файлов. Указанная вами настройка просто контролирует этот порог.
Если это кому-нибудь поможет, у меня было много файлов (сотни, если не тысячи) в одной ветке, которых еще не было в другой. Бег
$ git config merge.renamelimit 15345
сделал ошибку при слиянии
$ 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.