IBugtraqProvider 接口
TortoiseSVN 1.5及以后的版本可以使用实现了IBugtraqProvider接口的插件。利用这些接口提供的方法,插件可以和问题追踪器互动。
- HRESULT ValidateParameters (
- // UI 的父窗体
- // 该UI需要在验证的过程中一直显示。
- [in] HWND hParentWnd,
- // 需要被验证的参数字符串。
- [in] BSTR parameters,
- // 字符串有效吗?
- [out, retval] VARIANT_BOOL *valid
- );
这个方法是被一个设置对话框调用的,在这个对话框中,用户可以添加和设置插件。parameters
字符串可以被某个插件使用,用以获得附加需求的信息,例如,问题追踪器的URL、登录信息等等。该插件需要验证parameters
字符串并且当验证不通过时显示错误对话框。hParentWnd
参数用来指定插件显示的对话框属于哪个父窗体。当parameters
字符串验证通过时,该插件必须返回一个“TRUE”。如果返回的是“FALSE”,则设置对话框将不会允许用户添加插件到工作副本目录中。
- HRESULT GetLinkText (
- // 任何需要被显示的(错误)UI的父窗体。
- [in] HWND hParentWnd,
- // 参数字符串, 仅仅当需要和web服务器会话时使用。
- // 例如,去查找正确的文本是什么。
- [in] BSTR parameters,
- // 你想显示那些字符串?
- // 使用当前线程区域。
- [out, retval] BSTR *linkText
- );
该插件可以提供一个可以在TortoiseSVN提交对话框的按钮(这个按钮需要调用该插件)上显示的字符串,例如,"Choose issue" 或者 "Select ticket"。请确定这个字符串不会超长,否则会在按钮中显示不下。如果这个方法返回一个错误(例如。 E_NOTIMPL
),按钮上会显示一个默认的字符串。
- HRESULT GetCommitMessage (
- // 您提供者的UI的父窗体。
- [in] HWND hParentWnd,
- // 为您的提供者准备的参数。
- [in] BSTR parameters,
- [in] BSTR commonRoot,
- [in] SAFEARRAY(BSTR) pathList,
- // 在提交信息中已经显示过的文字。
- // 您的提供者应该在适当的地方包含这些文字。
- [in] BSTR originalMessage,
- // 新的提交信息文本。
- // 它将替换原始的提交信息。
- [out, retval] BSTR *newMessage
- );
这是这个插件的主要方法,这个方法将在用户点击插件按钮的时候,被TortoiseSVN提交对话框调用。
parameters
是一个字符串,用户在设置插件时必须将这个字符串填入设置对话框。通常,插件将通过这个字符串去寻找问题追踪器、登录信息等等。
commonRoot
字符串包含所有被选择的项目(在这些项目上打开的提交对话框)的父路径。请注意: 不是 所有已被用户在提交对话框中选中的项目的根路径。对分支/表情对话框来说,这个字符串就代表将被复制的路径。
pathList
参数包含一个数组(字符串类型的),数组里存放用户选中的将要提交的项目的路径。
originalMessage
参数包含在提交对话框的日志信息框中登入的文本信息。如果用户还没有登入任何信息,这个字符串将为空。
newMessage
返回的字符串被复制到提交对话框的日志信息编辑框中,之前显示在编辑框中的所有信息都将被覆盖。如果插件没有修改originalMessage
字符串,在这里,它必须再次返回相同的字符串,否则用户填写的所有文本信息将会丢失。