TortoiseSVN 1.5 以降では、 IBugtraqProvider インターフェイスを実装するプラグインを使用することができます。このインターフェイスでは、プラグインが課題追跡を操作するために使用できるいくつかのメソッドが用意されています。
HRESULT ValidateParameters ( // Parent window for any UI that needs to be // displayed during validation. [in] HWND hParentWnd, // The parameter string that needs to be validated. [in] BSTR parameters, // Is the string valid? [out, retval] VARIANT_BOOL *valid );
このメソッドは、ユーザーがプラグインを追加・設定できる設定ダイアログから呼び出されます。 parameters
の文字列は、プラグインに追加情報(例えば問題追跡ツールのURLや、ログイン情報など)を伝えるために使用することができます。プラグインは parameters
の文字列を検査し、文字列が有効でなければエラーダイアログを表示する必要すべきです。 hParentWnd
はプラグインが表示する各ダイアログの親ウィンドウとして使用します。プラグインは、 parameters
の文字列の検査に成功した場合は、 TRUE を返さなければなりません。プラグインが FALSE を返すと、設定ダイアログはユーザーが作業コピーのパスにプラグインを追加することを許可しません。
HRESULT GetLinkText ( // Parent window for any (error) UI that needs to be displayed. [in] HWND hParentWnd, // The parameter string, just in case you need to talk to your // web service (e.g.) to find out what the correct text is. [in] BSTR parameters, // What text do you want to display? // Use the current thread locale. [out, retval] BSTR *linkText );
プラグインは、TortoiseSVN のコミットダイアログでプラグインを起動するためのボタン、例えば「問題を選択」や「チケットを選択」などの文字列を提供することができます。文字列がボタン内に収まらないほど長くならないように注意してください。このメソッドがエラーを返した場合(たとえば E_NOTIMPL
を返した場合)は、ボタンにはデフォルトのテキストが使用されます。
HRESULT GetCommitMessage ( // Parent window for your provider's UI. [in] HWND hParentWnd, // Parameters for your provider. [in] BSTR parameters, [in] BSTR commonRoot, [in] SAFEARRAY(BSTR) pathList, // The text already present in the commit message. // Your provider should include this text in the new message, // where appropriate. [in] BSTR originalMessage, // The new text for the commit message. // This replaces the original message. [out, retval] BSTR *newMessage );
これは、プラグインの中心的なメソッドです。このメソッドは、 TortoiseSVN のコミットダイアログでユーザーがプラグイン用のボタンをクリックしたときに呼び出されます。
parameters
の文字列は、設定ダイアログでプラグインの設定を行った際に、ユーザーが設定した文字列です。通常は、プラグインはこの情報を、問題追跡ツールの URL を指定したり、ログイン情報を指定したりするために使用します。
commonRoot
の文字列は、コミットダイアログを表示するために選択されたすべての項目の親のパスが入っています。これは、ユーザーがコミットダイアログで選択した全項目のルートパスではないことに注意してください。ブランチ/タグダイアログの場合、これはコピーされるパスです。
pathList
パラメーターは、ユーザーがコミットのために選択したパス(文字列)の配列をが含まれています。
originalMessage
パラメーターは、コミットダイアログのログメッセージボックスに入力したテキストが含まれています。ユーザーはまだ何もテキストを入力していない場合、この文字列は空になります。
newMessage
に返された文字列は、コミットダイアログのログメッセージのエディットボックスにコピーされ、すでに何が書かれていてもそれを置き換えます。プラグインが originalMessage
を変更しなかった場合、ここでは同じ文字列を返却する必要があります。そうしなければ、ユーザーが入力した文字列は失われます。