Importación de git repo ya existente con múltiples twigs y tags en gerrit

Estoy tratando de importar un repository git ya existente con múltiples twigs y tags en gerrit. Estoy siguiendo la guía oficial en https://gerrit-review.googlesource.com/Documentation/install-quick.html#_already_existing_project .

Sin embargo, al emitir el command push todas las twigs y tags, excepto "master" en el que me encuentro actualmente, están "prohibidas por Gerrit". El resultado es algo como esto:

user@host:~/my-project$ git push ssh://user@localhost:29418/demo-project *:* [....] * [new branch] master -> master ! [remote rejected] origin/Branch1 -> origin/Branch1 (prohibited by Gerrit) ! [remote rejected] origin/Branch2 -> origin/Branch2 (prohibited by Gerrit) [....] ! [remote rejected] Tag1 -> Tag1 (prohibited by Gerrit) ! [remote rejected] Tag2 -> Tag2 (prohibited by Gerrit) [....] 

Soy administrador, así que no debería ser un problema de derechos de acceso.

Actualización: Al usar el script de blahdiblah ( http://sofes.miximages.com/a/16095671/63661 ) tuve éxito moviendo todas las twigs. Para poder transferir todas las tags, primero tuve que otorgarles a los Administradores del grupo el permiso "Crear reference" para * refs / tags / ** usando la interfaz web de gerrit. Después de eso, pude empujarlos usando git push –tags .

El set mínimo de permissions para permitir refs/* para importar un repository existente a Gerrit fue para nosotros:

  • Create Reference (obviamente)
  • Forge Author Identity y Forge Committer Identity (porque está presionando los compromisos de otras personas)
  • Push (bastante obviamente)
  • Push Merge Commit (esto no está incluido en Push , y es probable que tengas commit de fusión)
  • Push Annotated Tag (usamos annotations en algunas tags)

También debe permitir la Push Signed Tag si ha firmado tags, obviamente.

Finalmente, si planea ejecutar la import más de una vez para sincronizar incrementalmente repositorys durante algún período de transición, también debe permitir Read y habilitar Force Push para todos los permissions Push .