Git: falsos conflictos de fusión?

He estado usando git durante algunos años, y de vez en cuando, al hacer una fusión, Git informa de algunos conflictos extraños. Aquí hay un ejemplo de un file .htaccess, desde que me fusioné en la nueva versión 7.24 del núcleo de Drupal:

# Protect files and directories from prying eyes. <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$"> <<<<<<< HEAD Order allow,deny </FilesMatch> # Hide important scripts from malicious users. <FilesMatch "^(autoinstall\.php|install\.php|update\.php)$"> ======= >>>>>>> 7.24 Order allow,deny </FilesMatch> 

¿Cómo hay un conflicto aquí? Ni siquiera es un caso potencial de diferencias en el espacio en blanco / línea final: simplemente no hay nada en la sección 7.24 del conflicto.

¿Por qué git se queja de esto? Probablemente esté malentendiendo algo fundamental …

Git selecciona un ancestro compartido para sus fusiones:

 0 |_________ | | ab |_____|_ | M 

Si git detecta que tanto a como b son cambios de 0 , esto causa un problema de fusión que le impide producir automáticamente el file fusionado M

¿Lo has visto en una herramienta adecuada de combinación de 3 vías como p4merge ? Puede ayudarlo a mostrar lo que cree que es el antepasado compartido y lo que percibe como el cambio conflictivo.

Hay una explicación decente de lo que está pasando con sus conflictos falsos aquí: http://www.gelato.unsw.edu.au/archives/git/0504/2279.html

Dicho sea de paso, esa publicación fue escrita por Bram Cohen, uno de los autores de Bittorrent. Más tarde trató de desarrollar su propia alternativa a Git que esperaba solucionar este tipo de problemas. Su análisis del problema es acertado, pero no creo que haya sido capaz de resolverlo realmente. Hay razones interesantes detrás de por qué esto es probablemente insoluble, pero una publicación de StackOverflow no es el lugar correcto para ese agujero de conejo.