Die IBugtraqProvider-Schnittstelle

TortoiseSVN 1.5 und neuer unterstützen Module, die die IBugtraqProvider-Schnittstelle implementieren. Diese Schnittstelle stellt einige Methoden für die Kommunikation mit dem Fehlerverfolgungssystem zur Verfügung.

HRESULT ValidateParameters (
  // Elternfenster für die Bedienoberfläche des Moduls,
  // die während der Überprüfung angezeigt wird.
  [in] HWND hParentWnd,

  // Die zu überprüfenden Parameter als Zeichenkette.
  [in] BSTR parameters,

  // Sind die Parameter gültig?
  [out, retval] VARIANT_BOOL *valid
);

Diese Methode wird vom Einstellungsdialog aufgerufen, in dem der Anwender ein Modul hinzufügen und konfigurieren kann. Die Zeichenkette parameters kann von dem Modul verwendet werden, um zusätzliche Informationen, z. B. die URL des Fehlerverfolgungssystems, Anmeldeinformationen usw. zu erhalten. Das Modul sollte die Zeichenkette parameters-Zeichenkette überprüfen und einen Fehlerdialog anzeigen, wenn die Zeichenkette ungültig ist. Der Parameter hParentWnd sollte für jeden Dialog verwendet werden, der vom Modul als Elternfenster angezeigt wird. Das Modul muss TRUE zurückgeben, falls parameters gültig ist. Wenn das Modul FALSE zurückgibt, lässt der Einstellungsdialog den Anwender das Modul nicht zum Pfad der Arbeitskopie hinzufügen.

HRESULT GetLinkText (
  // Elternfenster für die Bedienoberfläche des Moduls.
  [in] HWND hParentWnd,

  // Die Parameter als Zeichenkette, für den Fall, dass Sie mit
  // Ihrem Web-Dienst Rücksprache halten müssen.
  [in] BSTR parameters,

  // Welchen Text wollen Sie anzeigen?
  // Verwenden Sie die Locale des aktuellen Threads.
  [out, retval] BSTR *linkText
);

Das Modul kann hier eine Zeichenkette zur Verfügung stellen, die im TortoiseSVN-Übertragen-Dialog für die Schaltfläche verwendet wird, die das Modul aufruft, z. B. "Eintrag wählen" oder "Ticket auswählen". Stellen Sie sicher, dass die Zeichenkette nicht zu lang ist, da sie sonst unter Umständen nicht auf die Schaltfläche passt. Wenn die Methode einen Fehler (z. B. E_NOTIMPL) zurückgibt, wird ein Standardtext auf der Schaltfläche angezeigt.

HRESULT GetCommitMessage (
  // Elternfenster für die Bedienoberfläche des Moduls.
  [in] HWND hParentWnd,

  // Parameter für Ihr Modul
  [in] BSTR parameters,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // Der Text, der bereits in der Logmeldung steht.
  // Ihr Modul sollte diesen Text, wo angebracht,
  // in die neue Meldung einfügen.
  [in] BSTR originalMessage,

  // Der neue Text für die Logmeldung.
  // Ersetzt den Originaltext.
  [out, retval] BSTR *newMessage
);

Dies ist die Hauptmethode des Moduls. Die Methode wird aus dem TortoioseSVN-Übertragen-Dialog aufgerufen, wenn der Anwender auf die Modul-Schaltfläche klickt.

Die Zeichenfolge parameters muss vom Anwender im Einstellungsdialog bei der Konfiguration des Moduls angegeben werden. Meistens wird damit die URL des Fehlerverfolgungssystems, die Anmeldeinformationen oder ähnliches an das Modul übergeben.

Die Zeichenkette commonRoot enthält den Elternpfad aller beim Start des Übertragen-Dialogs gewählten Objekte. Beachten Sie, dass das nicht der Basispfad aller im Übertragen-Dialog gewählten Objekte ist. Für den Verzweigen/Markieren-Dialog ist es der zu kopierende Pfad.

Der Parameter pathList enthält ein Feld von Pfaden (als Zeichenfolgen), die der Anwender für die Übertragung gewählt hat.

Der Parameter originalMessage enthält den im Übertragen-Dialog als Logmeldung eingegebenen Text. Wenn der Anwender noch nichts eingegeben hat, ist diese Zeichenkette leer.

Der Rückgabewert newMessage wird in das Eingabefeld für die Logmeldung im Übertragen-Dialog kopiert und ersetzt den bisherigen Inhalt. Wenn das Modul den originalMessage-Wert nicht verändert, muss es ihn an dieser Stelle zurückgeben, weil sonst die Benutzereingaben verloren gehen.