Gerrit Change tiene estado: Enviado, Merge Pending, ¿cómo resolverlo?

El sistema Gerrit solo lo utilizamos varias personas. Una vez que hay un cambio A, y su estado es: "Enviado, Merge Pendiente". La list de cambios en la página web "abierta". También noté que este cambio tenía una dependencia en otro cambio B (que se abandona el estado).

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

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

Lo que tendrá que hacer es modificar A (tal vez usando git rebase ) para que ya no dependa de B, y vuelva a enviar el cambio a Gerrit.

FYI. Tuve el mismo problema de "Enviado, Combinar pendiente" cuando el usuario presiona enviar dos veces en la misma página (hizo doble clic en el button Enviar). Sucedió en Gerrit 2.11.

Error en el logging 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 compromiso (cambios de código). Pero después de presionar dos veces hay 2 commits. El segundo es con el nuevo post de confirmación y el estado "Enviado, Merge Pendiente".

Cuando eliminé toda la información sobre el segundo compromiso:

 $ 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.

Lo que Greg afirma es correcto, una fusión automática no es posible. Es posible incorporar solo A utilizando la opción "selección de cereza" de Gerrit (esencialmente una fusión manual). Desafortunadamente, esto no eliminará el estado "Merge Pending" de Gerrit. Normalmente escribo un comentario a este efecto, si el Contributor no puede ser molestado con la rebase.

Chico. Si confirma que tiene una label, puede encontrar un error. Este error había sido arreglado en Gerrit V2.7.

Referencia de error: https://groups.google.com/forum/#!topic/repo-discuss/tLVMibfzroc

Tuve el mismo problema de "Enviado, Merge Pendiente" sin ninguna dependencia o conflicto. La solución rápida es revisar todos los elementos abiertos y ver si hay algún otro compromiso en el estado "Enviado, Combinar Pendiente". Si es así, solo abandónalos a todos.

Luego, git commit –ame -m "tus comentarios originales" y git push nuevamente, esta vez puedes fusionar tu corrección.

Enfrenté este problema porque inserté una label en el nombre de la sucursal:

 git tag xyz HEAD git push -f origin xyz:master 

Así que mejor empujar una twig en su lugar,

 git tag xyz HEAD git push -f origin HEAD:master 

De esa forma, Gerrit puede fusionar nuevamente mis parches pendientes.

  1. Abandona tu impulso de Gerrit.

En la Terminal:

  1. git log
  2. git reset HEAD ~ n

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

  1. git add.
  2. git commit -m "Su post"
  3. git push

ahora fusiona tu compromiso con Gerrit.