¿Por qué Gerrit está aceptando empujes, no puede manejar?

Los siguientes comentarios a esta respuesta e información si los documentos de Gerrit. Si agregar references apropiadas es obligatorio:

git push gerrit HEAD:refs/for/master 

Entonces, ¿por qué Gerrit está aceptando un empujón sin ellos? Después de hacer el git push origin master con los refs adecuados faltantes, se pulsa push (en el nivel de Git), pero no se crea ningún cambio (a nivel Gerrit). El usuario está terminando con un lío en el sistema de revisión de código (no puede fusionar el cambio no existente, no puede impulsar nada más, porque no recibe ningún rechazo de cambios ) y debe hacer un montón de cosas extrañas para solucionar este problema .

¿Cuál es el motivo o la lógica para implementar una característica, que dicha confirmación será aceptada? ¿Por qué Gerrit no rechaza los empujes, que no puede manejar en absoluto?

puede crear una regla de inserción en la página de Administración de Gerrit, donde puede desactivar la inserción directa. ver los detalles aquí en mi equipo; es útil tener dos grupos con diferentes reglas push. Los grupos que trabajan en la misma twig, pero solo uno del grupo introdujeron el flujo de trabajo de Gerrit. Pero eso no significa que la confirmación o los cambios causarían un desastre debido a que se presionaron de manera diferente al corte remoto. Gerrit / Git lo manejará rechazando los cambios no rápidos.

Si un usuario tiene suficientes permissions (específicamente un permiso de inserción que cubre los refs en cuestión, en este caso refs/heads/master ), puede omitir las revisiones al presionar los cambios directamente en la bifurcación. Esto es mucho por layout y es necesario para tareas comunes, como la import de confirmaciones ascendentes. En muchos casos, esta acción está restringida a administradores, mantenedores de proyectos y usuarios avanzados similares para hacer cumplir las revisiones, pero estoy seguro de que algunas organizaciones usan Gerrit para las revisiones de códigos opcionales. Gerrit debe considerarse como un server Git de propósito general que admite revisiones de código.

Si no desea este comportamiento, debe ajustar los derechos de acceso de sus gits.