はじめに

2017-09-07追加
2017年9月ごろから、GitHubのPull Requestで受け付けるようになりました。そのため、以下の情報は不要です。


Plan 9 from User SpaceはGitHubでリポジトリが用意されていますが、通常のPull RequestではなくGerritでコードレビューを行います。まずは

を読みましょう。ざっくり言うと、Gitを直接使うのではなくPlan 9 from User Spaceに含まれているcodereviewコマンドを使ってパッチを送るように書かれています。(結局はGitのラッパーなのですが)

普段、Gitを使った開発に慣れている場合は、最初から違和感がありますけれど、いったん公式で推奨している方法でパッチ作成を行います。

ソースコードの修正

まず、masterブランチでコードを修正します。ここではまだトピックブランチの作成もコミットも行いません。修正が終わったら問題が解決したかをテストして次の手順を行いましょう。

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   lib/moveplan9.files

パッチの作成

この時点でgit statusは、ステージされていない変更がいくつか存在する状態になっているはずです。このままcodereview create <name>を実行してブランチの作成と変更のコミットを行いましょう。このコマンドは、git branch <name> && git commit -aのような動作をします。

$ codereview create moveplan9.files

ここで、コミットメッセージの最後にChange-Id:という行が追加されているでしょうか。このIDはGitのcommit-msgフックで追加されるものです。codereviewコマンドを使った場合は何もしなくても追加されていると思いますが、IDがない場合はGerritにアップロードする時に弾かれてしまいます。

変更の追加

codereview createコマンドの後で変更を追加したくなった場合は、ファイルを修正してcodereview commitコマンドを実行しましょう。これはgit commit -a --amendとほとんど同等です。

$ codereview commit

Gerritアカウントの取得

Gerritにアップロードするためcodereview uploadコマンドを実行して、Googleアカウントでログインしましょう。ただしこの時点では、.gitcookiesを取得するためのURLとアップロードエラーが表示されると思います。URLを開いて、ページに書かれているコマンドを実行します。

touch ~/.gitcookies
chmod 0600 ~/.gitcookies

git config --global http.cookiefile ~/.gitcookies

tr , \\t <<\__END__ >>~/.gitcookies
plan9port.googlesource.com,FALSE,/,TRUE,xxxx
plan9port-review.googlesource.com,FALSE,/,TRUE,xxxx
__END__

そのまま~/.gitcookiesに保存しても構いませんし、リポジトリ単位で(--globalオプションを外して)セットしても問題ありません。

パッチのアップロード

ここまで完了したらアップロードするだけです。codereview uploadコマンドでアップロードしましょう。

$ codereview upload

これで、Plan 9 from Outer SpaceのGerritに自分の書いた変更が反映されると思います。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.