TortoiseSVN 1.6 では、プラグインにもっと多くの機能を提供する新しいインターフェイスが追加されました。この IBugtraqProvider2 インターフェイスは IBugtraqProvider から継承されます。
HRESULT GetCommitMessage2 ( // Parent window for your provider's UI. [in] HWND hParentWnd, // Parameters for your provider. [in] BSTR parameters, // The common URL of the commit [in] BSTR commonURL, [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, // You can assign custom revision properties to a commit // by setting the next two params. // note: Both safearrays must be of the same length. // For every property name there must be a property value! // The content of the bugID field (if shown) [in] BSTR bugID, // Modified content of the bugID field [out] BSTR * bugIDOut, // The list of revision property names. [out] SAFEARRAY(BSTR) * revPropNames, // The list of revision property values. [out] SAFEARRAY(BSTR) * revPropValues, // The new text for the commit message. // This replaces the original message [out, retval] BSTR * newMessage );
このメソッドは、ユーザーがプラグインボタンをクリックすると TortoiseSVN コミットダイアログから呼び出されます。このメソッドは GetCommitMessage()
の代わりに呼び出されます。そこで使用されるパラメータについては GetCommitMessage
のドキュメントを参照してください。
パラメータ commonURL
は、コミットダイアログを開くために選択されたすべてのアイテムの親 URL です。これは基本的に commonRoot
パスの URL です。
パラメータ bugID
には、(表示されている場合はプロパティ bugtraq:message
で設定されている) バグ ID フィールドの内容が含まれています。
戻りパラメータ bugIDOut
は、メソッドが戻ってきたときにバグ ID フィールドに埋め込まれます。
revPropNames
と revPropValues
戻りパラメータには、コミットが設定する必要があるリビジョン プロパティの name/value ペアを格納できます。プラグインは、戻り時に両方の配列が同じサイズになるようにする必要があります! revPropNames
の各プロパティ名にも revPropValues
に対応する値が必要です。リビジョン プロパティを設定しない場合は、プラグインは空の配列を戻す必要があります。
HRESULT CheckCommit ( [in] HWND hParentWnd, [in] BSTR parameters, [in] BSTR commonURL, [in] BSTR commonRoot, [in] SAFEARRAY(BSTR) pathList, [in] BSTR commitMessage, [out, retval] BSTR * errorMessage );
このメソッドは、コミットダイアログが閉じられてコミットが開始される直前に呼び出されます。プラグインはこのメソッドを使用して、コミットまたはユーザーが入力したコミットメッセージに対して選択されたファイル/フォルダを検証できます。パラメータは GetCommitMessage2()
と同じですが、commonURL
がチェックされているすべてのアイテムの共通 URL になり、commonRoot
がチェックされているすべてのアイテムのルートパスになります。
分岐/タグダイアログの場合、commonURL
はコピーのソース URL であり、commonRoot
はコピーのターゲット URL に設定されます。
戻りパラメータ errorMessage
には、TortoiseSVN がユーザーに表示するエラーメッセージを含めるか、コミットを開始するには空にする必要があります。エラーメッセージが戻されると、TortoiseSVN はエラー文字列をダイアログに表示し、コミットダイアログを開いたままにして、ユーザーが間違った箇所を修正できるようにします。したがって、プラグインは、ユーザーに何が間違っているのか、どのように修正するのかを伝えるエラー文字列を返す必要があります。
HRESULT OnCommitFinished ( // Parent window for any (error) UI that needs to be displayed. [in] HWND hParentWnd, // The common root of all paths that got committed. [in] BSTR commonRoot, // All the paths that got committed. [in] SAFEARRAY(BSTR) pathList, // The text already present in the commit message. [in] BSTR logMessage, // The revision of the commit. [in] ULONG revision, // An error to show to the user if this function // returns something else than S_OK [out, retval] BSTR * error );
このメソッドは、正常にコミットされた後に呼び出されます。プラグインはこのメソッドを使用して、選択した問題を閉じたり、コミットに関する情報を問題に追加したりできます。パラメータは GetCommitMessage2
と同じです。
HRESULT HasOptions( // Whether the provider provides options [out, retval] VARIANT_BOOL *ret );
このメソッドは、ユーザーがプラグインを設定できる設定ダイアログから呼び出されます。プラグインが ShowOptionsDialog
とともに独自の設定ダイアログを提供する場合は、ここで TRUE を返す必要があります。そうではない場合は、FALSE を返す必要があります。
HRESULT ShowOptionsDialog( // Parent window for the options dialog [in] HWND hParentWnd, // Parameters for your provider. [in] BSTR parameters, // The parameters string [out, retval] BSTR * newparameters );
このメソッドは、HasOptions
が TRUE を返した場合に表示される「オプション」ボタンをクリックすると、設定ダイアログから呼び出されます。プラグインはオプションダイアログを表示して、ユーザーがプラグインを設定しやすくすることができます。
parameters
文字列には、すでに設定されているプラグインパラメータ文字列が含まれています。
newparameters
戻りパラメータには、プラグインがオプションダイアログで収集した情報から構築したパラメータ文字列が含まれる必要があります。その parameters
文字列は、他のすべての IBugtraqProvider と IBugtraqProvider2 メソッドに渡されます。