パッチの送信方法

From The Document Foundation Wiki
Jump to: navigation, search
This page is a translated version of the page Development/gerrit/SubmitPatch and the translation is 74% complete.

Other languages:
dansk • ‎English • ‎italiano • ‎日本語 • ‎한국어 • ‎português do Brasil

gerritで査読用パッチを送信する

査読用パッチの送信

それでは、変更点(パッチ)を作成し、査読のためにgerritに送信してください(公式gerritドキュメントはこちら):

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への投稿において、現在のmasterのバージョンでの変更の(リ)ベースは有用です。これによってjenkins上でのCIビルドでccacheの恩恵を多く受けることができます。

少なくとも最後の行は特別で、この行で名前付きローカルブランチのすべてのパッチが、査読キューの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/.

少なくとも最後の行は特別で、この行で名前付きローカルブランチのすべてのパッチが、査読キューのmasterブランチにpushされます(リリースブランチやほかのブランチに送信したいならば適宜修正してください)。普通の貢献者はパッチのメールアドレスがgerritアカウントと同一でないとpushが許可されません。

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

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

git checkout master

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

貢献者リストにあなたを追加する

もし初めてLibreOfficeプロジェクトにパッチを送るのであれば、開発者と貢献者リストにあなたを追加し(そこの指示に従ってください)、あなたの貢献のライセンスを表明してください。

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によって)既存の変更点(パッチ)の新しいバージョンであることを認識します。

Tip.svg

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


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

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

その方法はDevelopment/GitReview#Amending_a_gerrit_changeを読んでください。

Submitting patches as private or work-in-progress

If you use ./logerrit submit-private master 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-wip master 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.

辞書・helpcontent2・翻訳のサブモジュールの査読用パッチの送信

サブモジュールのページをご覧ください。