tag tab mark how create git gerrit

git - tab - ¿Por qué Gerrit no incluye el cambio de id en las combinaciones de mezcla?



how to tag on git (1)

así que el gancho de git solo pone el ID de cambio en confirmaciones. Aunque las confirmaciones de combinación pueden ser empujadas para revisar la sucursal, incluso Gerrit está configurado para requerir Cambio-Id en los mensajes de confirmación. Y cuando se ha enviado una confirmación de combinación, toda la confirmación posterior dependerá de la confirmación de combinación, ya que no hay ID de cambio. Entonces, ¿cuál es el propósito de no incluir la Id. De cambio en la confirmación de fusión?


El problema subyacente en Git es que commit-msg no se llaman para realizar combinaciones de mezcla sin conflictos.

Sin embargo, se llama a prepare-commit-msg para (cualquier) confirmación de fusión. Entonces, lo que actualmente hago para que el Change-Id de Change-Id de Gerrit también se agregue para fusionar confirmaciones 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 llamará a commit-msg si se modifica una confirmación de fusión, porque en ese caso Git llama a ese gancho directamente. Tenga en cuenta que para los compromisos de combinación con conflictos, este enfoque hará que se invoque commit-msg dos veces, una vez como parte de este gancho de prepare-commit-msg y una vez por Git cuando llama a commit-msg después de commit-msg la resolución de conflictos, pero no causar problemas, ya que el enlace commit-msg Gerrit comprueba si el Change-Id ya se ha agregado y no lo vuelve a agregar si ese es el caso.

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