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
文字列を変更しない場合は、ここで同じ文字列をもう一度返す必要があります。そうしないと、ユーザーが入力したテキストが失われます。