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
パラメーターは、 bug-ID フィールドの内容が内容が含まれています(bugtraq:message
プロパティの設定により、表示される場合)。
返却パラメーターbugIDOut
は、メソッドから戻るときにbug-ID フィールドを埋めるために使用されます。
revPropNames
や revPropValues
出力パラメーターには、コミット時に設定されるリビジョンのプロパティの名前と値のペアを入れることができます。プラグインは、両方の配列が同じサイズであることを確認する必要があります。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
についてはすべてのチェックした項目であり、 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
出力パラメーターには、プラグインが、オプションダイアログで収集した情報から構築されたパラメーター文字列を設定する必要があります。その paramameters
文字列は、他のすべての IBugtraqProvider と IBugtraqProvider2 のメソッドに渡されます。