Giao diện IBugtraqProvider2

Trong TortoiseSVN 1.6 giao diện mới đã được bổ sung cung cấp nhiều chức năng hơn cho các plugins. Giao diện IBugtraqProvider2 này thừa hưởng từ 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
);

Phương pháp này được gọi là từ hộp thoại cam kết TortoiseSVN khi người dùng nhấp vào nút plugin. Phương pháp này được gọi thay vì GetCommitMessage() . Xin vui lòng tham khảo các tài liệu cho GetCommitMessage để biết các thông số cũng được sử dụng ở đó.

Tham số commonURL là URL cha mẹ của tất cả các mục được lựa chọn để đưa lên hộp thoại cam kết. Về cơ bản đây là URL của đường dẫn commonRoot .

Tham số bugID chứa nội dung của trường ID lỗi (nếu nó được hiển thị, cấu hình với thuộc tính bugtraq:message ).

Tham số trả về bugIDOut được sử dụng để điền vào các trường ID lỗi khi phương pháp quay về.

Các thông số trả về revPropNames revPropValues có thể chứa các cặp tên / giá trị cho các thuộc tính mà cam kết nên thiết lập. Một plugin phải đảm bảo rằng cả hai mảng có cùng kích thước lúc trả về! Mỗi tên thuộc tính trong revPropNames cũng phải có một giá trị tương ứng trong revPropValues . Nếu không có thuộc tính sửa đổi nào được thiết lập, các plugin phải trả lại mảng trống.

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
);

Phương pháp này được gọi là ngay trước khi hộp thoại cam kết được đóng và cam kết bắt đầu. Một plugin có thể sử dụng phương pháp này để xác nhận các tập tin / thư mục được lựa chọn cho các cam kết và / hoặc thông điệp cam kết được nhập vào bởi người sử dụng. Các thông số đều giống nhau như đối với GetCommitMessage2 () , với sự khác biệt mà commonURL URL chung của tất cả các mục được kiểm tra , và commonRoot đường dẫn thư mục gốc của tất cả các mục được kiểm tra.

Đối với hộp thoại chi nhánh / thẻ, commonURL URL nguồn của bản sao chép, và commonRoot được đặt đến các URL mục tiêu của bản sao chép.

Tham số trả về errorMessage có phải có một thông báo lỗi mà TortoiseSVN cho người sử dụng thấy hoặc được để trống cho cam kết để bắt đầu. Nếu một thông báo lỗi được trả về, TortoiseSVN hiển thị chuỗi lỗi trong một hộp thoại và giữ hộp thoại cam kết mở để người dùng có thể sửa chữa bất cứ điều gì bị sai. Một plugin do đó cần trả về một chuỗi lỗi thông báo cho người sử dụng những gì là sai và làm thế nào để sửa nó.

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
);

Phương pháp này được gọi sau khi một cam kết thành công. Một plugin có thể sử dụng phương pháp này ví dụ như, đóng vấn đề được lựa chọn hoặc thêm thông tin về cam kết vào vấn đề này. Các thông số đều giống nhau như đối với GetCommitMessage2 .

HRESULT HasOptions(
  // Whether the provider provides options
  [out, retval] VARIANT_BOOL *ret
);

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ể cấu hình các plugin. Nếu một plugin cung cấp hộp thoại cấu hình riêng của mình với ShowOptionsDialog , nó phải trở về TRUE ở đây, nếu không nó phải trả về 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
);

Phương pháp này được gọi là từ hộp thoại thiết lập khi người dùng nhấp vào nút "Tùy chọn" được hiển thị nếu HasOptions trả về TRUE. Một plugin có thể hiển thị một hộp thoại tùy chọn để làm cho nó dễ dàng hơn cho người sử dụng để cấu hình các plugin.

Các chuỗi thông số chứa các chuỗi thông số của plugin đã được thiết lập / nhập vào.

Thông số trả về newparameters phải chứa các chuỗi thông số mà các plugin xây dựng từ thông tin thu thập trong hộp thoại tùy chọn của nó. Chuỗi paramameters đó được chuyển tới tất cả các IBugtraqProvider khác và các phương pháp IBugtraqProvider2.