From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Development/gerrit/SubmitPatch and the translation is 68% complete.
Outdated translations are marked like this.
Other languages:
English • ‎dansk • ‎italiano • ‎português do Brasil • ‎日本語 • ‎한국어



Stephan Bergmann gave a helpful presentation in FOSDEM 2021 called The Perfect Gerrit Patch - a consumer report.

Important: there is normally never a reason to abandon your patch. Please read carefully the section about submitting a new version.


git checkout -b <a_local_branch_name_of_your_choice>
# コードを変更して、それがビルドできることを確認してください
git add file [file ...] # 新しいファイル _と_ 変更したファイルを全て
git commit
./logerrit submit master

注意:`logerrit`コマンドが動くようにするため、確実にgerritのセットアップをしてください。 ガイドはここにあります。

注意: git add + git commit ステップは'git gui'でも行うことができますが、コミットの題名行は72文字以下で、(もしあれば)コミットメッセージ行は80文字以下であることに注意してください。


少なくとも最後の行は特別で、この行で名前付きローカルブランチのすべてのパッチが、査読キューのmasterブランチにpushされます(リリースブランチやほかのブランチに送信したいならば適宜修正してください)。普通の貢献者はパッチのメールアドレスがgerritアカウントと同一でないとpushが許可されません。 If you have some version preinstalled, you might not see warnings (but have inconsistent results when buildbots would fail telling you to change formatting the other way), or the preinstalled version might not work (e.g., complaining about command line options). The version used by LibreOffice may be found at https://dev-www.libreoffice.org/bin/.


pushに成功したら、gitはあなたのコミットが査読待ちのどこにいるのかを報告します。URLは以下のようなものになります: https://gerrit.libreoffice.org/#/c/229/.

査読中はローカルブランチを保持したままのほうが良いでしょう。それによって、パッチの新しいバージョンを簡単にpushできるようになります。 その間は以下のコードを実行することで

git checkout master

masterブランチに戻ることができます - そして上記の操作(ローカルブランチの作成、コーディング、コミット、gerritへのpush)でほかのパッチを再び編集することができます。



Please only send the statement no earlier than when you post your first submission to gerrit and ensure you have permission from your parents!


上記の方法の代わりに、Development/GitReviewでの説明の通り、"git review"を使うこともできます。




git checkout <local_branch_associated_with_your_patch>
<do your modification>
git add ...
git commit --amend  # これはブランチ上で新しいコミットを作成する代わりに最後のコミットを変更します
./logerrit submit master

補足: gerritは(Change-Idによって)既存の変更点(パッチ)の新しいバージョンであることを認識します。


もし--amendを使うことを忘れて2つのコミットができてしまったら、git rebase -iでそれらをマージすることができます:方法はLibreOffice開発者のためのGitをご覧下さい。

変更点の追記・新しいバージョンのパッチ送信のためのGit reviewの使用

上記の方法を使った手動での変更点の追記は混乱しやすく、あなたのパッチに関連したローカルブランチを追い続けるとエラーが発生しやすくなります(何かに関連?)。gerritへいくつか変更を送信するならば、masterブランチでそれら全てを保持し、個別に追加することが重要です。送信や新しいパッチセットのダウンロード・変更・追記・送信・リセットを行うたびにHEAD^へリセットするか、個別のブランチでそれを行う必要があるでしょう。その際はgit reviewが簡単にしてくれます。


Submitting patches as private or work-in-progress

If you use ./logerrit submit master%private instead of ./logerrit submit master, you will create a private change.

Such a change will only be visible to yourself and whoever you add as a reviewer with the 'add reviewer' button in gerrit.

If you don't need to hide your change from the general public, you can use ./logerrit submit master%wip to create a work-in-progress change.

If you are not using logerrit, push to refs/for/branch%private or refs/for/branch%wip.

You can also toggle the private and WIP states from the gerrit UI.



Cherry picking yourself out of trouble

Ignoring the advice about submitting new versions of patches is common. This might lead to deleting a local branch or submitting a new patch depending on an older patch. In order to work on your original patch locally again, do the following:

  1. In a terminal, check out a new branch from master
  2. Click the kebab menu in the top right corner of the Gerrit patch view
  3. Select Download patch
  4. Click the copy button next to Cherry Pick
  5. Paste the copied command into your terminal
  6. Follow the modifying and amending advice from the section about submitting a new version