web-dev-qa-db-fra.com

Gerrit Push ne fonctionne pas. Télécommande rejetée, interdite par gerrit

J'essaie d'ajouter un rapport existant à gerrit. Je crée un projet vide et j'ai essayé de le pousser (git Push ssh://admin@localhost:29418/project *:*). Je reçois ce message d'erreur en retour:

Counting objects: 14, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 384 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 3 (delta 1)
remote: Resolving deltas: 100% (1/1)
remote: Processing changes: refs: 3, done    
To ssh://admin@localhost:29418/project
 ! [remote rejected] Origin/HEAD -> Origin/HEAD (prohibited by Gerrit)
 ! [remote rejected] Origin/master -> Origin/master (prohibited by Gerrit)
 ! [remote rejected] Origin/ref/for/master/testing -> Origin/ref/for/master/testing (prohibited by Gerrit)
error: failed to Push some refs to 'ssh://admin@localhost:29418/project'

Je suis déjà allé sur le site gerrit et sous project/access, j'ai ajouté refs/head/*, privilèges Créer une référence pour tous les utilisateurs. 

9
Vis

D'après mon expérience, vous avez besoin des autorisations de groupe suivantes pour importer un référentiel entier dans gerrit - essentiellement des autorisations pour tout transférer dans le référentiel gerrit:

  • refs/heads /*
    • créer une référence
    • forger l'identité de l'auteur
    • forger l'identité de committer
    • Pousser
    • Validation de fusion
    • Push tag annoté
  • refs/tags /*
    • créer une référence
9
volker

En plus d'ajouter le privilège Créer une référence, vous devez également vous assurer que vous disposez du privilège Push direct/forcé Push - la création d'une référence impliquerait la création d'une nouvelle branche, tandis que la mise à jour d'une branche existante (à savoir, Origin/HEAD et Origin/master) requièrent le privilège direct Push/force Push (j’ai vu gerrit appeler cette fonction à la fois Direct Push et Force Push dans la documentation).

2
forkrul

dans votre projet git, utilisez git config --list pour afficher votre nom d'utilisateur.utilisateur.email est ou différent du nom d'utilisateur ou du courrier électronique de votre site gerrit local. Ils doivent être identiques. Si ce n'est pas le cas, utilisez git config user.name. XXX.

enfin. git config remote.Origin.Push refs/heads /: refs/for/ afin que vous puissiez utiliser le maître git Push Origin

0
孙晨光