Git – Detecta si está basado en conflictos

Me pregunto si hay una manera de detectar si una confirmación se reestructuró con una resolución de conflicto manual o con la rebase automática de Git (sin conflicto).

En los detalles, digamos, en Gerrit, una confirmación pendiente necesita una rebase porque algunas confirmaciones se fusionan en el período de revisión. En ese caso, los desarrolladores deben cargar un nuevo parche después de volver a basarlo. El revisor quiere saber si se trata de una combinación automática sin conflictos (con #git pull –rebase) o si se produjo una fusión manual debido a conflictos. Si ocurre un conflicto manual, el administrador puede querer revisarlo de manera más consciente. De lo contrario, el administrador tiene confianza en Git.

¿Hay alguna forma de utilizar Git / Gerrit API?

Puedes usar git cherry <branch after rebase> <branch before rebase> . Busca los cambios "equivalentes" y enumera los que no tienen equivalente con "+". Si hubo un conflicto durante el rebase, entonces el parche cambia, por lo que el cambio ya no es equivalente.

Crea una cierta cantidad de falsos positivos, cuando los cambios concurrentes son lo suficientemente cercanos como para considerar el compromiso no equivalente, pero lo suficientemente distante como para no desencadenar un conflicto.