Developer's Blog

TurtleMineプラグインを導入してTortoiseHGのコミットメッセージにRedmineのチケット内容を自動で入れる

こんにちは、TortoiseHGではWorkbenchのみ利用している松本です。

最近リリースされたバージョン2.1からイシュートラッカーのプラグイン設定がGUIから可能になったこともあり、いろいろ試した結果、TurtleMine (旧名Tortoise Redmine) をどうにか導入できましたので、使い方と導入手順を簡単に紹介します。

利用手順

まずは簡単にTurtleMineの使い方を紹介します。TurtleMineを導入しているときに、Workbenchを起動してcommitビューを表示すると「Redmine Issues」というボタンが表われます。

これをクリックすると次のように最近のチケットが15件表示されます。このウィンドウでは、「作業中」という文字列で検索しており、それに該当しているものは地が青くなっています。ここで、コミットに含めたいチケットにチェックして「OK」をクリックします。

そうすれば、Workbenchのコミット用メッセージボックスにトラック番号と概要がコピーされますので、あとは「Commit」ボタンをクリックするだけです。機能としてはこれだけですが、コピー&ペーストの手間が減るので地味に快適です。

導入手順

TurtleMineの公式ページにコンパイル済みのバイナリがありますので、そちらを利用することもできます。

今回は、公式バイナリを利用すると手元の環境ではTortoiseHGでの設定保存時にエラーになってしまうことや、起動時に検索内容を埋めたりコミットメッセージをカスタマイズしたいこともあり、ソースから導入することにします。

なお、導入にはSubversionとVisual Studioが必要です。

まず、コマンドプロンプトから次にように入力してTurtleMineのソースを取得します。

svn checkout http://redmine-projects.googlecode.com/svn/trunk/ redmine-projects-read-only

取得したソース内のredmine-projects-read-only\TSVNRM\src\TRMIssues\TRMIssues.csprojからVisual Studioを起動します。

ソリューションエクスプローラからFeedParser.csを開き、メソッドFeedParserの先頭に次のような1行を追加します。これは利用したいRedmineのプロダクトのチケットのAtomフィードへのURLを指定します。追加するコードをdiff風に表わすと次のようになります。

  public FeedParser(String feedUrl) {
+     feedUrl = "http://redmine.example.co.jp/projects/sleipnir/issues.atom";

次に、コミットメッセージをカスタマイズするために、PluginRedMine.csのメソッドGetCommitMessageを修正します。修正する内容をdiff風に表わすと次のようになります。

      foreach (var item in form.ItemsFixed) {
-         result.AppendLine(string.Format("({0} #{1}) : {2}", Strings.IssueText, item.Number, item.Description));
+         result.AppendLine(string.Format("FIX: #{0}{1}", item.Number, item.Description));
      }

最後にIssueForms.csを開いて検索用のテキストボックスのテキストを「作業中」にしておきます。これで修正は完了です。

コンパイルしてパッケージを作成するために、Setup-x64 (32-bit環境ではSetup-x86) を右クリックして「ビルド」を選択します。

作成されたredmine-projects-read-only\TSVNRM\src\64bitSetup\Release\TortoiseRedminePlugin_64bit.msiをダブルクリックしてインストーラを起動させます。

設定すべき項目も特にありませんので、インストール手順は割愛します。

インストール完了後に、TortoiseHGのWorkbenchを起動してSettingsウィンドウの「Issue Tracking」内にある「Issue Tracking Plugin」から「TurtleMine」を選択します (コードにURLを埋め込んでいるので、「Configure Issue Tracker」での設定は必要ありません)。

そして、TortoiseHGを再起動すれば利用できるようになります。

Copyright © 2019 Fenrir Inc. All rights reserved.