¿Dónde almacena git la identificación de cambio de Gerrit?

Tengo git, versión 1.9.5.msysgit y estoy usando Gerrit 2.10 como herramienta de revisión de código. Me gustaría saber dónde se almacena Change-ID en un repository clonado localmente.

Después de presionar con éxito algunos cambios en una sucursal remota de mi sucursal local, git push sorprendentemente me da un error para el commit actual diciendo:

remote: ERROR: missing Change-Id in commit message footer remote: Change-Id: I197b74458ae304ad512d96c4ac905c6d3afc4da4 remote: Hint: To automatically insert Change-Id, install the hook: remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 abc.xyz@serverip:hooks/commit-msg ${gitdir}/hooks/ 

Antes, obtenía este error, podía introducir algunos cambios en un control remoto sin que hubiera problemas en la misma twig clonada. Sin embargo, de repente, estoy recibiendo este error.

Cuando revisé mi logging local, pude ver que la confirmación actual ya tiene una ID de cambio, pero git push dice que falta el ID de cambio.

No hay cambios en el file commit-msg que en realidad se usa para generar Change-Ids.

Si pudiera ver dónde se está almacenando este identificador de cambio, tal vez podría ver la diferencia entre Change-Id ya existente y el que produce el post de error.

Leí sobre esto https://groups.google.com/forum/#!topic/repo-discuss/aq98R4-4TqI Me estoy rascando la cabeza como un loco. ¿Cómo puedo solucionar esto?

El ID de cambio desde el punto de vista de Git solo se almacena en el post de confirmación de confirmaciones.

Gerrit usa estos identificadores de cambio para asociar compromisos (como sets de parches) que conforman un cambio.

Asegúrese de que haya una línea vacía entre su post de confirmación y la ID de cambio y que la ID de cambio sea la última línea.

Por ejemplo:

 >>git show commit eafbc99b9343a5e060ece5c95b050c3fc541f292 Author: John Doe <John.Doe@gmail.com> Date: Tue Sep 1 16:12:17 2015 -0400 My commit message header This commit is... Change-Id: I511a54c1ec18e59615d76f89d57c0a7cc03b6f5c 

Es posible que desee volver a ejecutar este command (desde el resultado de Git) y modificar su confirmación:

 gitdir=$(git rev-parse --git-dir); scp -p -P 29418 abc.xyz@serverip:hooks/commit-msg ${gitdir}/hooks/ git commit --amend 

El ID de cambio de Gerrit es simplemente parte del post de confirmación. Entonces, aquí, Gerrit le pide que agregue el ID de cambio al post de compromiso para que pueda vincular el cambio de compromiso y viceversa.

Para hacer eso, simplemente modifica tu compromiso usando git commit --amend . Esto mostrará su editor y luego solo agregue la siguiente línea hasta el final:

 Change-Id: I197b74458ae304ad512d96c4ac905c6d3afc4da4 

P.ej

 This is the commit summary There can also be some extra text in the commit message. Change-Id: I197b74458ae304ad512d96c4ac905c6d3afc4da4 

Por lo general, debe instalar el enlace de confirmación tal como lo sugiere la sugerencia en el post de error. De esta forma, cada vez que se compromete, se agrega un nuevo ID de cambio al post de confirmación. Entonces no necesita hacer eso manualmente.