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?

40
demandé sur Senthil A Kumar 2011-03-03 16:28:28

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-diffexpliquer 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.

29
répondu Hank Gay 2011-03-03 13:53:35

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.
8
répondu Andras 2018-03-21 09:53:38