2012-10-11 47 views
28

Estoy usando la versión 2.4.2 de Gerrit. Tengo una rama master y creé una nueva rama, llamada newbranch. Luego presioné algunos cambios en el control remoto (Gerrit) newbranch. Después de verificar en Gerrit, fusioné los cambios en newbranch.Cómo combinar la rama Gerrit con otra rama Gerrit

No, lo que fusionar los newbranch a master, enviar actualizaciones master (fusionada con los cambios de newbranch), y eliminar la rama newbranch.

He intentado hacer esto:

git fetch 
git checkout master 
git merge newbranch 
git push origin master:refs/for/master 

Pero Gerrit envía de vuelta:

! [remote rejected] master -> refs/for/master (no new changes) 

¿Qué debo hacer?

Respuesta

26

Esta situación ha sido reportada como un error en Gerrit. He aquí una solución/solución de Gerrit's issue tracker:

A lo mejor de mi conocimiento, tienes 2 opciones actualmente -

  1. Fuerza de empuje para refs/heads. Es solo un avance rápido, por lo que en teoría todo ya ha sido revisado y verificado. No tiene sentido volver a hacerlo, así que saltee ese proceso y presione hacia refs/heads en lugar de refs/for.

  2. Adelante y crea una fusión de confirmación. Use 'git merge --no-ff' - esto creará una fusión de compromiso a pesar de que no es necesario en su situación de avance rápido. Luego, la confirmación de fusión puede cargarse, revisarse, verificarse y fusionarse de forma normal.

Mi empresa tiende a ir con la opción 2. Voy a cerrar esto como wontfix, pero si usted tiene alguna sugerencia sobre cómo hacerlo mejor por favor háganoslo saber.

5

Si la fusión es una combinación de avance rápido, no existe ningún objeto para presionar a gerrit, ya que un avance rápido solo está moviendo el puntero de la bifurcación.

necesita forzar la fusión para crear un objeto de evitar un avance rápido:

git merge --no-ff