パッチの送信方法

From The Document Foundation Wiki
Jump to: navigation, search
本ページはGlobal Wikiからの有志による翻訳ページです。未翻訳があることや内容が古い場合があります。最新化、翻訳にご協力お願いします。
日本語独自の情報についてまとめることを目的として、日本語コミュニティによって運営されているページとして 日本語コミュニティ独自ページ があります。
URLが wiki.documentfoundation.org/JA で始まっていて、カテゴリーがJAのページです。
そちらもご利用ください。

注意:このページのオリジナルは英語版 パッチの送信方法2018-03-01T21:25:56‎ の版からコピーしたものです。

原文は逐次改定されるので、定期的に原文を参照して差分を更新し、ずれることがないようにお願いします。なお差分更新をかけた場合は上の日付も修正しておいてください。

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

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

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

査読用パッチの送信

それでは、変更点(パッチ)を作成し、査読のために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'でも行うことができますが、コミットの題名行は65文字以下で、(もしあれば)コミットメッセージ行は70文字以下であることに注意してください。

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

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

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

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

git checkout master

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

パッチ送信の追加情報

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

Im-jabber.svg

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

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

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

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

下書きとしてのパッチの送信

もし./logerrit submit masterの代わりに./logerrit submit-draft masterを使うと、下書き変更点を作成します。

このような変更点はあなたとあなたがgerritの'add reviewer'ボタンで追加した査読者にだけ見えます。これは'作業中'の変更点を議論する際に便利です。

もしあなたがlogerritを使っていないならば、refs/for/branchの代わりにrefs/drafts/branchにpushしてください。

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

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