releases - gerrit vs github
Gerrit Change tiene estado: Enviado, Fusión pendiente, ¿cómo resolverlo? (7)
- Abandona tu empuje de Gerrit.
En la Terminal:
- registro de git
- 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
- git añadir.
- git commit -m "Tu mensaje"
- 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).
- ¿Cómo hacer una lista en la página web "Fusionada"?
- ¿Cómo hacer que B desaparezca, por lo que A no tiene más dependencia de B?
Chico. Si confirma que tiene una etiqueta, puede encontrar un error. Este error había sido corregido en Gerrit V2.7.
Referencia de error: https://groups.google.com/forum/#!topic/repo-discuss/tLVMibfzroc
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.