Die IBugtraqProvider Schnittstelle

TortoiseSVN 1.5 und neuer unterstützen Module, die die IBugtraqProvider Schnittstelle implementieren. Diese Schnittstelle stellt die folgenden 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, etc. zu erhalten. Das Modul sollte die parameters Zeichenkette überprüfen und einen Fehlerdialog anzeigen, falls die Zeichenkette ungültig ist. Der hParentWnd Parameter 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 mittels diese Methode einen Text zur Verfügung stellen, der im TortoiseSVN Übertragen-Dialog auf der Schaltfläche, die das Modul aufruft, angezeigt wird, z.B. "Eintrag wä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 parameters Zeichenfolge muss vom Anwender im Einstellungsdialog bei der Konfiguration des Moduls angegeben werden. Meistens wird damit an das Modul die URL des Fehlerverfolgungssystems, die Anmeldeinformationen oder ähnliches übergeben.

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

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

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

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