Google CodeのIssue Trackerと連動するSVNのコミットログの書き方
infoScoopもinfoScoop CalendarもGoogle Codeを使っています。
そして、ソースリポジトリにSubversion(SVN)を使っています。
Redmineなどのプロジェクト管理ソフトと同様、Google CodeのIssue TrackerもSVNのコミットログと連動することができます。
コミットログにチケット番号を書くと、そのチケットも更新されます。
詳しくはIssueTracker - support - User guide for Project Hosting issue tracker - Project Hosting on Google Codeに書いてありますが、英語だしちょっとクセがあるのでコミットログの書き方をまとめておきます。
コミットログの書き方
さて、ここから書き方を説明します。
まず、2パターンあり、それで書き方が違います。
- ステータスをFixedにする
- チケットの更新・新規チケット作成
ステータスをFixedにする
基本
書き方3つありますが、一つだけ覚えましょう。
何かコメント 何かコメント Fixes issue NNN
「Fixes issue NNN」の行は他のことは書かずそれだけ書いてください。
issueは先頭大文字でも大丈夫です。
こう書いてコミットすると、NNN番のissueのStatusがFixedになります。
他の書き方は日本語だとうまくいきません。ピリオドがないとうまくいかないっぽいです。
複数同時にFixedにする
何かコメント 何かコメント Fixes issue NNN Fixes issue NNN
「Fixes issue NNN」を改行を入れて続ければ、複数のissueを一回のコミットでFixedにできます。
チケットの更新・新規チケット作成
ステータスをFixedにする以外のチケットの更新・新規チケット作成の基本の書き方は以下のようになります。
Your commit log message descriptive text... COMMAND-LINE ISSUE-FIELD-UPDATE* COMMENT-TEXT...
- Your commit log message descriptive text...
の部分はコミットログにだけ残るメッセージで、チケットには追加されません。
- COMMAND-LINE
以下の3つの書き方があります。対象のチケット番号や更新か新規作成かを指定します。
-
- Update issue NNN
- New issue
- New review
- ISSUE-FIELD-UPDATE
チケットのタイトル、ステータス、ラベルなどを変更するときに記述します。
以下の記述方法が使えます。
- COMMENT-TEXT
チケットを更新したときのコメントを書きます。改行できます。
これは例を見た方がわかりやすいと思います。下にいくつか例を書いたのでそちらをご覧ください。
記述例
チケットをFixedにする
Fixes issue 67 組織がないとユーザ検索パネルにプルダウンが表示されない
複数チケットを同時にFixedにする
複数同時にFixedにする例です。
「issue 1,2,3...」の部分は書かなくてもよいです。
issue 1,2,3のステータスを同時にFixedにする例 Fixes issue 2 Fixes issue 3 Fixes issue 1
チケットにコメントを追加する
単純にチケットにコメントを追加する例。ステータスなどは変更しない。
Update issue 81 タイムゾーンがUTCのサーバーで空き時間検索が正常に動作しない問題を修正 サーバーでの時間の処理をクライアントのタイムゾーンに合わせるように修正
コミットログにメッセージを残し、チケットにコメントを追加する
「Issue 120...」の部分はコミットログにのみ残り、チケットには追加されません。
Issue 120: Decrease the frequency of the Ajax request to get the gadget configuration file Update issue 120 Fixed that When login user's widgets is empty, retrieving gadget configurations is failed.
チケットのステータスを更新する
issue 2のステータスをAcceptedに変更するコミットログの例 Update issue 2 Status: Accepted チケットのステータスをAcceptedに変更します。
チケットのラベルを更新する
issue 2のチケットのラベルを更新する例 Update issue 2 Labels: Type-Enhancement, Priority-Low Type-Enhancement, Priority-Lowに変更する
チケットのラベルを追加する
CcとLabelsには+-記号が使えます。+をつけると追加され、-をつけると削除されます。
issue 2のチケットにラベルを追加する例 Update issue 2 Labels: +Performance Performanceラベルを追加する
チケットのラベルを削除する
issue 2のチケットからラベルを削除する例 Update issue 2 Labels: -Performance Performanceラベルを削除する
チケットの新規作成
コミットと同時にチケットを新規作成し、いきなりFixedにする例。
New issue Summary: 管理画面へのリンクを追加する Status: Fixed Labels: Milestone-0.8-RC1 画面右上のログアウトボタンの左に管理画面へのリンクを追加する
ただ、このチケットの新規作成はコミットログからチケットへのリンクが貼られないので、あまり使えないです。
Issue Trackerでチケットを作成してから、Updateするのがやはりよいと思います。
複数チケットの更新
複数チケットを1コミットで同時に更新するのはいろいろ試したのですが、どうもできないようです。
どういうことができるか
この書き方でコミットログを書くと以下のようなことが実現できます。