rietveld releases googlesource gitiles git gerrit

releases - gerrit vs github



Gerrit Change tiene estado: Enviado, Fusión pendiente, ¿cómo resolverlo? (7)

  1. Abandona tu empuje de Gerrit.

En la Terminal:

  1. registro de git
  2. git reset HEAD ~ n

donde n es el recuento de confirmaciones desde arriba en la lista de confirmaciones generadas en el terminal desde el paso 2

  1. git añadir.
  2. git commit -m "Tu mensaje"
  3. git push

Ahora fusiona tu cometido en Gerrit.

El sistema Gerrit solo es utilizado por nosotros varias personas. Una vez que hay un cambio A, y su estado es: "Enviado, fusionado pendiente". La lista de cambios en la página web "abierta". También noté que este Cambio tenía una dependencia en otro cambio B (cuyo estado se abandona).

  1. ¿Cómo hacer una lista en la página web "Fusionada"?
  2. ¿Cómo hacer que B desaparezca, por lo que A no tiene más dependencia de B?


Lo que Greg dice es correcto, una fusión automática no es posible. Es posible incorporar solo A usando la opción "selección de cereza" de Gerrit (esencialmente una fusión manual). Desafortunadamente, esto no eliminará el estado "Fusión pendiente" de Gerrit. Por lo general, escribo un comentario a este efecto, si el Colaborador no puede tener problemas para reajustar.


Me enfrenté a este problema porque puse una etiqueta en el nombre de la rama:

git tag x.y.z HEAD git push -f origin x.y.z:master

Así que mejor empujar una rama en su lugar,

git tag x.y.z HEAD git push -f origin HEAD:master

De esa manera gerrit es capaz de combinar de nuevo mis parches pendientes.


Para tu información Tuve el mismo problema de "Enviado, Fusionar pendiente" cuando el usuario presiona enviar dos veces en la misma página (ella hizo doble clic en el botón de enviar). Sucedió en Gerrit 2.11.

El error en el registro parece

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ''5173-2-1'' for key ''PRIMARY'' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

Antes de enviar solo había 1 confirmación (cambios de código). Pero después de pulsar dos veces hay 2 confirmaciones. La segunda es con el nuevo Mensaje de confirmación y el estado "Enviado, Fusión pendiente".

Cuando quité toda la información sobre la segunda confirmación:

$ ssh -p 29418 admin@machine gerrit gsql gerrit> delete from `patch_set_approvals` where change_id=5173 and patch_set_id=2; gerrit> delete from `patch_set_ancestors` where change_id=5173 and patch_set_id=2; gerrit> delete from `patch_sets` where change_id=5173 and patch_set_id=2;

Marcado como integrado por el usuario Gerrit Code Review.


Si el cambio A tiene una dependencia de B, entonces A no puede fusionarse hasta que B se fusione. Ya que has abandonado B, Gerrit no fusionará automáticamente A.

Lo que deberá hacer es modificar A (tal vez utilizando git rebase ) para que ya no dependa de B y volver a enviar el cambio a Gerrit.


Tuve el mismo problema de "Enviado, Fusión pendiente" sin ninguna dependencia o conflicto. La solución rápida es revisar todas las partidas abiertas y ver si hay algún otro compromiso en el estado "Enviado, Fusionar pendiente". Si es así, simplemente abandónalos a todos.

Luego git commit --amend -m "tus comentarios originales" y git push de nuevo, esta vez puedes fusionar tu corrección.