こんにちは、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を再起動すれば利用できるようになります。