¿Por qué Gerrit no incluye el ID de cambio en compromisos de fusión?

entonces el gancho git solo pone el cambio de ID en confirmaciones. Aunque las asignaciones de fusión pueden enviarse a la twig de revisión, incluso Gerrit está configurado para requerir Change-Id en los posts de confirmación. Y cuando una confirmación de fusión ha sido presionada, toda la confirmación subsiguiente dependerá de la confirmación de fusión, ya que no hay cambio de Id. Entonces, ¿cuál es el propósito de no include el cambio de Id en el compromiso de fusión?

El problema subyacente en Git es que commit-msg enganches commit-msg no son necesarios para la fusión de commits sin conflictos.

Sin embargo, el prepare-commit-msg se llama para (cualquier) merge commits. Entonces, lo que hago actualmente para conseguir que Gerrit's Change-Id también se agregue a las asignaciones de fusión sin conflictos es usar un gancho de prepare-commit-msg como este:

 #!/bin/sh if [ "$2" = "merge" -a -f .git/MERGE_MSG ]; then # Explicitly call Gerrit's commit-msg hook for merge commits. .git/hooks/commit-msg "$1" fi 

La comprobación de .git/MERGE_MSG garantiza que no se .git/MERGE_MSG commit-msg si se modifica una confirmación de fusión, porque en ese caso Git llama directamente a ese gancho de todos modos. Tenga en count que para las asignaciones de fusión con conflictos, este enfoque dará como resultado que commit-msg se commit-msg dos veces, una como parte de este gancho prepare-commit-msg y una vez por Git cuando llame a commit-msg después de commit-msg la resolución de conflictos, pero eso no Causa problemas ya que el gancho commit-msg Gerrit verifica si Change-Id ya se ha agregado y no lo agrega nuevamente si ese es el caso.

Si ahora se está preguntando a usted mismo por qué Gerrit no utiliza simplemente un gancho de prepare-commit-msg para agregar el Change-Id , supongo que para evitar que el usuario elimine accidentalmente el Change-Id de cambio del post de confirmación. Agregarlo como parte de un commit-msg después de que el editor se haya cerrado es más seguro.