L'interface de IBugtraqProvider

TortoiseSVN 1.5 et supérieur peut être agrémenté de greffons qui ajouteront une interface pour IBugtraqProvider. Cette dernière fournira quelques méthodes que les greffons pourront utiliser pour s'interfacer avec le gestionnaire d'incidents.

HRESULT ValidateParameters (
  // Fenêtre parent pour toutes les interfaces devant être
  // affichées pendant la validation.
  [in] HWND hParentWnd,

  // La chaine en paramètre doit être validée.
  [in] BSTR parameters,

  // La chaine est elle valide ?
  [out, retval] VARIANT_BOOL *valid
);

Cette méthode est appelée depuis la fenêtre des paramètres là où l'utilisateur peut ajouter et configurer le greffon. La chaîne parameters peut être utilisée par un greffon pour récupérer davantage d'informations nécessaires, par exemple, l'URL du gestionnaire d'incidents, les informations de connexion, etc. Le greffon doit vérifier la chaîne parametres et montrer une fenêtre d'erreur si la chaîne n'est pas valide. Le paramètre hParentWnd permet au plugin d'accéder à la fenêtre mère. Le greffon doit renvoyer TRUE si la chaîne parametres est validée. Si le greffon renvoie FALSE, la fenêtre de paramètrage n'autorisera pas l'utilisateur à ajouter le greffon au chemin d'une copie de travail.

HRESULT GetLinkText (
  // Fenêtre parent pour toutes les interfaces (d'erreur) devant être affiché.
  [in] HWND hParentWnd,

  // La chaine en paramètre, au cas où vous devriez communiquer avec votre
  // service web (i.e.) pour savoir qu'est ce qu'un texte correct.
  [in] BSTR parameters,

  // Quel texte voulez vous afficher ?
  // Utilisez le thread local courant.
  [out, retval] BSTR *linkText
);

Le greffon peut fournir une chaîne ici, laquelle sera utilisée dans la fenêtre de livraison de TortoiseSVN par le bouton qui appelle le greffon, par exemple, "Choisir l'incident" ou "Sélectionner le ticket". Assurez vous que la chaîne n'est pas trop longue, sinon elle ne rentrera pas dans le bouton. Si la méthode retourne une erreur (i.e., E_NOTIMPL), un texte par défaut est utilisé pour le bouton.

HRESULT GetCommitMessage (
  // Fenêtre principale de l'interface utilisateur de votre FAI.
  [in] HWND hParentWnd,

  // Paramètres pour votre FAI.
  [in] BSTR parameters,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // The texte déjà présent dans le message de livraison.
  // Votre FAI doit inclure ce texte dans le nouveau message,
  // où c'est appropré.
  [in] BSTR originalMessage,

  // Le nouveau texte pour le message de livraison.
  // Ceci remplace le message original.
  [out, retval] BSTR *newMessage
);

C'est la méthode principale du plugin. Cette méthode est appelée depuis la boîte de dialogue de livraison de TortoiseSVN lorsque l'utilisateur clique sur le bouton de plugin.

La chaîne paramètres est la chaîne que l'utilisateur doit entrer dans la boîte de dialogue de configuration quand il configure le plugin. Habituellement, un plugin utilise ceci pour trouver l'URL du gestionnaire d'incident et / ou des informations de connexion ou autre.

La chaîne commonRoot contient le chemin parent de tous les éléments sélectionnés pour faire apparaître la boîte de dialogue de livraison. Notez que ce n'est pas le chemin racine de tous les éléments que l'utilisateur a sélectionné dans la boîte de dialogue de livraison. Pour la boîte de dialogue branche/tag, c'est le chemin qui doit être copié.

Le paramètre pathListliteral> contient un tableau de chemins (sous forme de cha

Le paramètre originalMessage contient le texte entré dans la boîte de message de log, dans la boîte de dialogue de livraison. Si l'utilisateur n'a encore entré aucun texte, cette chaîne sera vide.

La chaîne de retour newMessageliteral> est copioriginalMessage, il doit la laisser, sinon tout texte que l'utilisateur a saisi sera perdu.