Umbral de cambio en el índice de similitud para la fusión de git con el cambio de nombre implicado (como -M –find-renames en diff)

Tenemos algunas opciones de configuration para la heurística de detección de cambio de nombre durante diff ( log , show ) y merge :

diff.renameLimit Número de files a tener en count al realizar la detección de copy / cambio de nombre; equivalente a la opción git diff -l.

diff.renames Le dice a git que detecte los nombres. Si se establece en cualquier valor boolean, habilitará la detección básica de cambio de nombre. Si se establece en "copys" o "copy", también detectará copys.

merge.renameLimit Número de files a tener en count al realizar la detección de cambio de nombre durante una combinación; si no se especifica, tiene el valor pnetworkingeterminado de diff.renameLimit.

También tenemos una opción para controlar cuándo los files con diferentes contenidos se consideran un cambio de nombre para diff ( log , show ):

-M [<n>] (o –find-renames [= <n>])

Detectar cambia de nombre Si se especifica n, es un umbral en el índice de similitud (es decir, cantidad de adiciones / eliminaciones en comparación con el tamaño del file). Por ejemplo, -M90% significa que git debería considerar un par de eliminar / agregar para cambiar el nombre si más del 90% del file no ha cambiado.

PREGUNTA : ¿Cómo controlar un umbral en el índice de similitud para la fusión? Parece estar disponible solo como una opción de command-line para diff y algunos otros, pero no para merge . Y ninguna key de configuration incluso para diff . ¿No es aplicable para la merge por alguna razón?

Si se está fusionando con la estrategia de fusión recursiva (valor pnetworkingeterminado) puede usar la opción de cambio de nombre de umbral:

 git merge -X rename-threshold=80 branch