Giao diện IBugtraqProvider

TortoiseSVN 1,5 và sau đó có thể sử dụng các plugin mà thực hiện giao diện IBugtraqProvider. Giao diện này cung cấp một vài phương pháp bổ sung có thể sử dụng để tương tác với bộ theo dõi vấn đề.

HRESULT ValidateParameters (
  // Cửa sổ mẹ cho bất kỳ Giao Diện nào cần được
  // trưng bày trong lúc xác mình.
  [in] HWND hParentWnd,

  // Chuỗi tham số cần được xác minh
  [in] BSTR parameters,

  // Chuỗi có hợp lệ không?
  [out, retval] VARIANT_BOOL *valid
);

Phương pháp này được gọi là từ hộp thoại thiết lập mà người dùng có thể thêm vào và cấu hình các plugin. Các chuỗi thông số có thể được sử dụng bởi một plugin để có được thông tin bổ sung cần thiết, ví dụ, URL để theo dõi vấn đề, thông tin đăng nhập, vv Các plugin cần phải xác minh các chuỗi thông số và hiển thị một hộp thoại báo lỗi nếu chuỗi không hợp lệ. Các tham số hParentWnd được sử dụng cho bất kỳ hộp thoại plugin được hiển thị như là cửa sổ cha mẹ. Các plugin phải trả về TRUE nếu việc xác nhận các thông số chuỗi thành công. Nếu plugin trả về FALSE, hộp thoại thiết lập sẽ không cho phép người sử dụng thêm các plugin vào một đường dẫn bản sao làm việc.

HRESULT GetLinkText (
  // Cửa sổ mẹ cho bất kỳ Giao Diện (lỗi)  cần được trưng bày.
  [in] HWND hParentWnd,

  // Chuỗi tham số, phòng trường hợp bạn cần nói chuyện với
  // web service (ví dụ) để tìm hiều văn bản đúng là gì.
  [in] BSTR parameters,

  // Bạn muốn trưng bày văn bản nào?
  // Sử dụng văn hóa điạ phương thread hiện tại.
  [out, retval] BSTR *linkText
);

Các plugin có thể cung cấp một chuỗi ở đây mà được sử dụng trong hộp thoại cam kết TortoiseSVN cho nút gọi các plugin, ví dụ như, "Chọn vấn đề" hoặc "Chọn vé". Hãy chắc chắn rằng chuỗi không phải là quá dài, nếu không nó có thể không vừa với nút. Nếu phương thức trả về một lỗi (ví dụ như, E_NOTIMPL ), một văn bản mặc định sẽ được sử dụng cho nút.

HRESULT GetCommitMessage (
  // Cửa sổ mẹ cho Giao Diện của nhà cung cấp của bạn.
  [in] HWND hParentWnd,

  // Các tham số cho nhà cung cấp của bạn.
  [in] BSTR parameters,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // Văn bản đã có mặt trong thông điệp cam kết.
  // Nhà cung cấp của bạn nên bao gồm văn bản này trong thông điệp mới,
  // ở nơi phù hợp.
  [in] BSTR originalMessage,

  // Văn bản mới cho thông điệp cam kết.
  // Cái này sẽ thay thế thông điệp gốc.
  [out, retval] BSTR *newMessage
);

Đây là phương pháp chính của các plugin. Phương pháp này được gọi là từ hộp thoại TortoiseSVN cam kết khi người dùng nhấp vào nút plugin.

Các chuỗi thông số là một chuỗi người dùng phải nhập vào trong hộp thoại thiết lập khi cấu hình plugin. Thông thường, một plugin sẽ sử dụng cái này để tìm địa chỉ URL của bộ theo dõi vấn đề và / hoặc thông tin đăng nhập hoặc nhiều hơn.

Các chuỗi commonRoot chứa đường dẫn cha mẹ của tất cả các mục đã chọn để đưa lên hộp thoại cam kết. Lưu ý rằng đây không phải là đường dẫn thư mục gốc của tất cả các mục mà người dùng đã lựa chọn trong hộp thoại cam kết. Đối với hộp thoại chi nhánh/thẻ, đây là đường dẫn mà sẽ được sao chép.

Tham số pathList có chứa một loạt các đường dẫn (dưới dạng các chuỗi) mà người dùng đã lựa chọn cho cam kết.

Các tham số originalMessage có chứa các văn bản nhập vào hộp thông điệp tường trình trong hộp thoại cam kết. Nếu người dùng chưa nhập vào bất kỳ văn bản nào, chuỗi này sẽ trống rỗng.

Các newMessage chuỗi trả về được sao chép vào hộp chỉnh sửa thông điệp tường trình trong hộp thoại cam kết, thay thế bất cứ thứ gì đã có. Nếu một plugin không thay đổi chuỗi originalMessage , nó phải trả lại cùng một chuỗi một lần nữa ở đây, nếu không sẽ bị mất bất kỳ văn bản người dùng đã nhập vào.