3

複数のブランチとタグを持つ既存の git リポジトリを gerrit にインポートしようとしています。https://gerrit-review.googlesource.com/Documentation/install-quick.html#_already_existing_projectの公式ガイドに従っています。

ただし、プッシュ コマンドを発行すると、現在いる「マスター」を除くすべてのブランチとタグが「Gerrit によって禁止」されます。出力は次のようになります。

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)
[....]

私は管理者なので、アクセス権の問題ではありません。

更新: blahdiblah のスクリプト ( https://stackoverflow.com/a/16095671/63661 ) を使用して、すべてのブランチの移動に成功しました。すべてのタグを転送できるようにするには、まず、gerrit Web インターフェイスを使用して、グループ管理者に *refs/tags/**の「参照の作成」権限を付与する必要がありました。その後、git push --tagsを使用してそれらをプッシュできました。

4

1 に答える 1

6

refs/*既存のリポジトリを Gerrit にインポートするために許可する最小限の権限セットは次のとおりです。

  • Create Reference(明らかに)
  • Forge Author IdentityおよびForge Committer Identity(他の人のコミットをプッシュしているため)
  • Push(明らかに)
  • Push Merge Commit(これは には含まれていないためPush、マージ コミットが発生する可能性があります)
  • Push Annotated Tag(一部のタグではアノテーションを使用しています)

Push Signed Tagもちろん、署名済みのタグがある場合も許可する必要があります。

最後に、移行期間中にリポジトリを増分同期するためにインポートを複数回実行する予定がある場合は、すべての権限を許可Readして有効にする必要もあります。Force PushPush

于 2013-12-20T10:13:18.267 に答える