web-dev-qa-db-fra.com

Avertissement GIT: trop de fichiers ignorant la détection de renommage inexacte

Sache que la limite de renommage par défaut est 100 et peut augmenter cette valeur en utilisant la configuration "diff.renamelimit config"

Ce qui m'inquiète, c'est que si cette configuration n'est pas configurée, y aura-t-il une fusion incorrecte, un code manquant? J'essaie de fusionner (git merge) 2 branches qui a d'énormes changements.

Quelqu'un peut-il éclairer davantage ce paramètre de configuration?

53
Senthil A Kumar

Votre contenu est sécurisé.

Si je comprends bien, git n'a pas réellement de concept d'opération rename de première classe (seulement bzr le fait, des 3 gros DVCS): le mv est du sucre sur la machine sous-jacente, qui est essentiellement un add et un rm. Étant donné que git peut suivre le contenu qui change au cours de ces opérations, il peut utiliser des heuristiques pour deviner quand un add et un rm sont en fait un mv . Étant donné que cela demande beaucoup plus de travail que d'afficher simplement ce que git a réellement enregistré — les documents pour git-diffexpliquez qu'il "... nécessite un temps de traitement O (n ^ 2) où n est le nombre de cibles de renommage/copie potentielles" —git ne l'essayera pas lorsque trop de fichiers sont impliqués. Le paramètre que vous mentionnez contrôle uniquement ce seuil.

36
Hank Gay

Au cas où cela aiderait quelqu'un, j'avais beaucoup de fichiers (des centaines, voire des milliers) dans une branche, qui n'étaient pas encore dans l'autre branche. Fonctionnement

$ git config merge.renamelimit 15345

fait l'erreur ci-dessous lors de la fusion s'en aller

$ 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.
22
M3RS