TortoiseSVN 1.5 버전 이상은 IBugtraqProvider 인터페이스를 구현하는 플러그인을 사용할 수 있습니다. 이 인터페이스는 플러그인이 이슈 트래커와 상호 작용하는 데 사용할 수 있는 몇 가지 메서드를 제공합니다.
HRESULT ValidateParameters ( // Parent window for any UI that needs to be // displayed during validation. [in] HWND hParentWnd, // The parameter string that needs to be validated. [in] BSTR parameters, // Is the string valid? [out, retval] VARIANT_BOOL *valid );
이 메서드는 사용자가 플러그인을 추가하고 설정할 수 있는 설정 대화 상자에서 호출됩니다. parameters 문자열은 플러그인이 추가로 필요한 정보, 예를 들어 이슈 트래커의 URL, 로그인 정보 등을 얻는 데 사용할 수 있습니다. 플러그인은 parameters 문자열을 확인하고, 문자열이 유효하지 않으면 오류 대화 상자를 표시해야 합니다. hParentWnd 매개변수는 플러그인이 표시하는 모든 대화 상자의 부모 창으로 사용되어야 합니다. 플러그인은 parameters 문자열의 유효성 검사가 성공하면 TRUE를 반환해야 합니다. 플러그인이 FALSE를 반환하면, 설정 대화 상자는 사용자가 플러그인을 작업 복사본 경로에 추가하는 것을 허용하지 않을 것입니다.
HRESULT GetLinkText ( // Parent window for any (error) UI that needs to be displayed. [in] HWND hParentWnd, // The parameter string, just in case you need to talk to your // web service (e.g.) to find out what the correct text is. [in] BSTR parameters, // What text do you want to display? // Use the current thread locale. [out, retval] BSTR *linkText );
플러그인은 TortoiseSVN 커밋 대화 상자에서 플러그인을 호출하는 버튼에 사용될 문자열을 제공할 수 있습니다. 예: "이슈 선택" 또는 "티켓 선택". 문자열이 너무 길지 않은지 확인하십시오. 그렇지 않으면 버튼에 맞지 않을 수 있습니다. 메서드가 오류를 반환하는 경우(예: E_NOTIMPL), 버튼에는 기본 텍스트가 사용됩니다.
HRESULT GetCommitMessage ( // Parent window for your provider's UI. [in] HWND hParentWnd, // Parameters for your provider. [in] BSTR parameters, [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, // The new text for the commit message. // This replaces the original message. [out, retval] BSTR *newMessage );
이것은 플러그인의 주 메서드입니다. 이 메서드는 사용자가 플러그인 버튼을 클릭할 때 TortoiseSVN 커밋 대화 상자에서 호출됩니다.
parameters 문자열은 사용자가 플러그인을 설정할 때 설정 대화 상자에 입력해야 하는 문자열입니다. 일반적으로 플러그인은 이를 사용하여 이슈 트래커의 URL 및/또는 로그인 정보 등을 찾습니다.
commonRoot 문자열은 커밋 대화 상자를 열기 위해 선택된 모든 항목의 부모 경로를 포함합니다. 이것은 사용자가 커밋 대화 상자에서 선택한 모든 항목의 루트 경로가 아님에 유의하십시오. 브랜치/태그 대화 상자의 경우, 이것은 복사될 경로입니다.
pathList 매개변수는 사용자가 커밋을 위해 선택한 경로(문자열 형태) 배열을 포함합니다.
originalMessage 매개변수는 커밋 대화 상자의 로그 메시지 상자에 입력된 텍스트를 포함합니다. 사용자가 아직 아무 텍스트도 입력하지 않았다면, 이 문자열은 비어 있을 것입니다.
newMessage 반환 문자열은 커밋 대화 상자의 로그 메시지 편집 상자로 복사되어 기존 내용을 대체합니다. 플러그인이 originalMessage 문자열을 수정하지 않는 경우, 여기에 동일한 문자열을 다시 반환해야 합니다. 그렇지 않으면 사용자가 입력한 모든 텍스트가 손실됩니다.