Gerrit con rastreos de function rastreada?

Nosotros (git / gerrit newbs) estamos tratando de usar gerrit con twigs características. El flujo de trabajo que estamos tratando de implementar es el siguiente:

  1. El usuario crea una twig de característica, la envía al repository remoto directamente (sin revisión) con git push -u origin users-branch .
  2. A medida que los cambios se acumulan en la twig maestra, el usuario hace git pull --rebase origin master ( --rebase es necesaria porque de lo contrario, git crea una fusión de compromiso, y la fusión de compromisos no puede ser empujado a través de gerrit).
  3. El usuario continúa impulsando sus cambios en el repository remoto con git push --force origin users-branch ( --force es necesario debido a --rebase en la etapa anterior, estoy buscando una mejor manera de hacerlo).
  4. Otros usuarios pueden contribuir a la twig de características impulsando sus propios cambios.
  5. Cuando la function está list, el usuario la empuja para su revisión con el git push origin HEAD:refs/for/master .

El último paso no funciona porque las confirmaciones que se enviaron a gerrit en cualquier etapa no pueden volver a presionarse.

El manual de gerrit sugiere modificar las confirmaciones que desea volver a aplicar. Esto parece complicado y propenso a errores.

Todo funciona si el usuario nunca empuja sus cambios al repository remoto, porque gerrit no ve los cambios hasta que se los empuja para su revisión. Pero esto es exactamente lo que no nos gusta.

Parece posible usar un repository diferente para las twigs de características, de modo que Gerrit nunca vea identificaciones de cambios duplicadas, pero esto nuevamente parece una complicación innecesaria.

¿Hay alguna manera de hacer lo que queremos de forma segura y elegante?

Si está ejecutando al less Gerrit 2.11 , puede beneficiarse de la solución para el problema 1195 y habilitar la opción create-new-change-for-all-not-in-target para tener en count la twig de destino al determinar nuevos cambios para abrir .