Attention GIT: trop de fichiers sautant la détection de renommage inexact
Je suis conscient que la limite de renommage par défaut est 100 et peut augmenter cette valeur en utilisant la configuration "diff.renamelimit config"
Qu'est-ce qui m'inquiète, si cette configuration n'est pas configurée, y aura-t-il une mauvaise fusion, un code manquant? J'essaie de fusionner (fusionner git) 2 branches qui ont d'énormes changements.
quelqu'un Peut jeter plus de lumière sur cette config?
2 réponses
votre contenu est sûr.
si je comprends bien, git
n'est pas réellement le concept de première classe rename
opération (uniquement bzr
ne, de la de grandes de 3 DVCSs):mv
est sucre sur le dessus de la machinerie sous-jacente, qui est essentiellement un add
et rm
. Depuis git
peut suivre le contenu qui change lors de telles opérations, cependant, il peut utiliser l'heuristique pour deviner quand un add
et rm
sont en fait un mv
. Puisque cela demande beaucoup plus de travail que juste afficher ce que git
en fait enregistré-les docs pour git-diff
expliquer qu'il "...nécessite O(n^2) temps de traitement où n est le nombre potentiel de renommer/copier cibles"-git
ne pas essayer un trop grand nombre de fichiers sont impliqués. Le réglage que vous mentionnez contrôle juste ce seuil.
au cas où cela aiderait quelqu'un, j'avais beaucoup de fichiers (des centaines, si pas des milliers) dans une branche, qui n'étaient pas encore dans l'autre branche. Cours d'exécution
$ git config merge.renamelimit 15345
fait l'erreur ci-dessous lors de la fusion 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.