1

私はローカル リポジトリの問題に取り組んでおり、kernel.org リポジトリでこのバグが修正されていることがわかりました。

そのため、この修正をkernel.orgブランチからcherry-pickローカルのgerritにプルしようとしています。そして、kernel.org ブランチからのコミットのコミット メッセージを維持しようとしています。

この修正をローカルの gerrit にプッシュしようとすると、次のエラーが発生します。

To ssh://<username>@123.321.12.1:1234/mirror-sec/asdfgt/hjks
 ! [remote rejected] <branch> -> refs/for/<branch> (not Signed-off-by author/committer/uploader in commit message footer)
error: failed to push some refs to 'ssh://<username>@123.321.12.1:1234/mirror-sec/asdfgt/hjks'

私が従った手順は次のとおりです。

  1. 走ったgit remote add 'tag' git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
  2. 走ったgit fetch 'tag'
  3. でコミットを検索しましたgit log 'tag'/master
  4. 必要な特定の commit-id を厳選しました:git cherry-pick <commit-id>
  5. チェリーgit commit --amendピックされた commit-id の新しい change-id を取得するために実行されました
  6. ローカルのgerritgit pushに変更を送信するために Funned:git push ssh://<username>@123.321.12.1:1234/mirror-sec/asdfgt/hjks <branch>:refs/for/<branch>

上記の手順を実行すると、上記のエラーに直面します。

私が間違っていることはありますか?私が見落としている情報は、大いに役立ちます。

ありがとう。

4

2 に答える 2

1

Gerrit のプロジェクトは、すべての変更が作成者、コミッター、またはアップローダーによって署名されることを強制するために、コミット メッセージのフッターでサインオフ バイを要求するように構成できます。プロジェクトで Signed-off-by が必要で、コミット メッセージのフッターにそれが含まれていない場合、Gerrit はこのエラー メッセージでコミットのプッシュを拒否します。

Forge Committer のアクセス権を持つことで、このポリシーをバイパスできます。

このエラーはさまざまな理由で発生する可能性があります

コミッター ID を偽造するアクセス権がない場合:

コミット メッセージのフッターにサインオフ バイがありません

作成者、コミッター、またはアップローダーからのサインオフは、コミット メッセージに含まれますが、フッターには含まれません (最後の段落)

コミットをプッシュできるようにするには、コミットを修正してサインオフ ラインを追加するか、ローカル gerrit で forge committer オプションを使用します。

于 2014-09-26T05:10:48.310 に答える