svn - Intégration de Fogbugz avec TortoiseSVN sans URL / Subversion backend

Translate

I've got TotroiseSVN installed and have a majority of my repositories checking in and out from C:\subversion\ et un couple s'enregistrant et sortant d'un partage réseau (j'ai oublié cela lorsque j'ai initialement publié cette question).

Cela signifie que je n'ai pas de serveur "subversion" en soi.

Comment intégrer TortoiseSVN et Fogbugz?

Edit: italique inséré

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

J'ai étudié ce problème et j'ai réussi à le faire fonctionner. Il y a quelques problèmes mineurs, mais ils peuvent être contournés.

Il y a 3 parties distinctes à ce problème, comme suit:

  1. La partie TortoiseSVN- demander à TortoiseSVN d'insérer le Bugid et l'hyperlien dans le journal svn

  2. La partie FogBugz- demander à FogBugz d'insérer les informations SVN et les liens correspondants

  3. La partie WebSVN- s'assurer que les liens de FogBugz fonctionnent réellement

Les instructions pour la partie 1 se trouvent dans une autre réponse, bien qu'elle fasse plus que nécessaire. Le truc sur les crochets est en fait pour la partie 2, et comme cela est souligné - cela ne fonctionne pas "hors de la boîte"

Juste pour confirmer, nous envisageons d'utiliser TortoiseSVNSANS POUR AUTANTun serveur SVN (c'est-à-dire des référentiels basés sur des fichiers)

J'accède aux référentiels en utilisant des chemins UNC, mais cela fonctionne également pour les lecteurs locaux ou les lecteurs mappés.

Tout cela fonctionne avec TortoiseSVN v1.5.3 et SVN Server v1.5.2 (Vous devez installer SVN Server car la partie 2 nécessitesvnlook.exequi se trouve dans le package serveur. Vous ne le configurez pas réellement pour fonctionner comme un serveur SVN) Il peut même être possible de simplement copiersvnlook.exeà partir d'un autre ordinateur et placez-le quelque part sur votre chemin.

Partie 1 - TortoiseSVN

La création des propriétés TortoiseSVN est tout ce qui est nécessaire pour obtenir les liens dans le journal SVN.

Les instructions précédentes fonctionnent bien, je les citerai ici pour plus de commodité:

Configurer les propriétés

  1. Cliquez avec le bouton droit sur le répertoire racine du projet extrait avec lequel vous souhaitez travailler.

  2. Sélectionnez "TortoiseSVN -> Propriétés"

  3. Ajoutez cinq paires de valeurs de propriété en cliquant sur «Nouveau ...» et en insérant les éléments suivants dans «Nom de la propriété» et «Valeur de la propriété» respectivement: (assurez-vous de cocher «Appliquer la propriété de manière récursive» pour chacune)

    bugtraq:label    BugzID:
    bugtraq:message  BugzID: %BUGID%
    bugtraq:number   true
    bugtraq:url      http://[your fogbugz URL here]/default.asp?%BUGID%
    bugtraq:warnifnoissue   false
    
  4. Cliquez sur OK"

Comme Jeff le dit, vous devrez le faire pour chaque copie de travail, alors suivez ses instructions pour migrer les propriétés.

C'est ça. TortoiseSVN va maintenant ajouter un lien vers le bugID FogBugz correspondant lorsque vous vous engagez. Si c'est tout ce que vous voulez, vous pouvez vous arrêter ici.

Partie 2 - FogBugz

Pour que cela fonctionne, nous devons configurer les scripts hook. Fondamentalement, le fichier de commandes est appelé après chaque validation, et cela appelle à son tour le script VBS qui effectue la soumission à FogBugz. Le script VBS fonctionne correctement dans cette situation, nous n'avons donc pas besoin de le modifier.

Le problème est que le fichier de commandes est écrit pour fonctionner comme unserveurcrochet, mais nous avons besoin d'unclientcrochet.

Le serveur SVN appelle le hook post-commit avec ces paramètres:

<repository-path> <revision>

TortoiseSVN appelle le hook post-commit avec ces paramètres:

<affected-files> <depth> <messagefile> <revision> <error> <working-copy-path>

Voilà pourquoi cela ne fonctionne pas - les paramètres sont erronés. Nous devons modifier le fichier de commandes pour qu'il transmette les paramètres corrects au script VBS.

Vous remarquerez que TSVN ne transmet pas le chemin du référentiel, ce qui est un problème, mais cela fonctionne dans les circonstances suivantes:

  • Le nom du référentiel et le nom de la copie de travail sont identiques
  • Vous effectuez la validation à la racine de la copie de travail, pas dans un sous-dossier.

Je vais voir si je peux résoudre ce problème et publierai ici si je le fais.

Voici mon fichier batch modifié qui fonctionne (veuillez excuser les commentaires excessifs ...)

Vous devrez définir les répertoires de hook et de référentiel pour correspondre à votre configuration.

rem @echo off
rem   SubVersion -> FogBugz post-commit hook file
rem   Put this into the Hooks directory in your subversion repository
rem   along with the logBugDataSVN.vbs file

rem   TSVN calls this with args <PATH> <DEPTH> <MESSAGEFILE> <REVISION> <ERROR> <CWD>
rem   The ones we're interested in are <REVISION> and <CWD> which are %4 and %6

rem   YOU NEED TO EDIT THE LINE WHICH SETS RepoRoot TO POINT AT THE DIRECTORY 
rem   THAT CONTAINS YOUR REPOSITORIES AND ALSO YOU MUST SET THE HOOKS DIRECTORY

setlocal

rem   debugging
rem echo %1 %2 %3 %4 %5 %6 > c:\temp\test.txt

rem   Set Hooks directory location (no trailing slash)
set HooksDir=\\myserver\svn\hooks

rem   Set Repo Root location (ie. the directory containing all the repos)
rem   (no trailing slash)
set RepoRoot=\\myserver\svn

rem   Build full repo location
set Repo=%RepoRoot%\%~n6

rem   debugging
rem echo %Repo% >> c:\temp\test.txt

rem   Grab the last two digits of the revision number
rem   and append them to the log of svn changes
rem   to avoid simultaneous commit scenarios causing overwrites
set ChangeFileSuffix=%~4
set LogSvnChangeFile=svn%ChangeFileSuffix:~-2,2%.txt

set LogBugDataScript=logBugDataSVN.vbs
set ScriptCommand=cscript

rem   Could remove the need for svnlook on the client since TSVN 
rem   provides as parameters the info we need to call the script.
rem   However, it's in a slightly different format than the script is expecting
rem   for parsing, therefore we would have to amend the script too, so I won't bother.
rem @echo on
svnlook changed -r %4 %Repo% > %temp%\%LogSvnChangeFile%
svnlook log -r %4 %Repo% | %ScriptCommand% %HooksDir%\%LogBugDataScript% %4 %temp%\%LogSvnChangeFile% %~n6

del %temp%\%LogSvnChangeFile%
endlocal

Je vais supposer que les référentiels sont à\\myserver\svn\et les copies de travail sont toutes sous `C: \ Projects \

  1. Accédez à votre compte FogBugz et cliquez sur Extras -> Configurer l'intégration du contrôle de source

  2. Téléchargez le fichier VBScript pour Subversion (ne vous embêtez pas avec le fichier batch)

  3. Créez un dossier pour stocker les scripts de hook. Je l'ai mis dans le même dossier que mes référentiels. par exemple.\\myserver\svn\hooks\

  4. Renommez VBscript pour supprimer le.safeà la fin du nom de fichier.

  5. Enregistrez ma version du fichier batch dans votre répertoire hooks, commepost-commit-tsvn.bat

  6. Faites un clic droit sur n'importe quel répertoire.

  7. Sélectionnez "TortoiseSVN> Paramètres" (dans le menu clic droit de la dernière étape)

  8. Sélectionnez "Scripts Hook"

  9. Cliquez sur "Ajouter" et définissez les propriétés comme suit:

    • Type de crochet: crochet post-validation

    • Chemin de copie de travail:C:\Projects(ou quel que soit votre répertoire racine pour tous vos projets.)

    • Ligne de commande à exécuter:\\myserver\svn\hooks\post-commit-tsvn.bat(cela doit pointer vers l'endroit où vous placez votre répertoire de hooks à l'étape 3)

    • Cochez "Attendez que le script se termine"

  10. Cliquez deux fois sur OK.

La prochaine fois que vous vous engagez et entrez un Bugid, il sera soumis à FogBugz. Les liens ne fonctionneront pas mais au moins les informations de révision sont là et vous pouvez rechercher manuellement le journal dans TortoiseSVN.

REMARQUE: vous remarquerez que la racine du référentiel est codée en dur dans le fichier de commandes. En conséquence, si vous extrayez des référentiels qui n'ont pas la même racine (par exemple, un sur le lecteur local et un sur le réseau), vous devrez utiliser 2 fichiers batch et 2 entrées correspondantes sous Hook Scripts dans TSVN réglages. La façon de procéder serait d'avoir 2 arborescences de copie de travail distinctes - une pour chaque racine de référentiel.

Partie 3 - WebSVN

Euh, je n'ai pas fait ça :-)

À la lecture de la documentation WebSVN, il semble que WebSVN ne s'intègre pas réellement au serveur SVN, il se comporte simplement comme n'importe quel autre client SVN mais présente une interface Web. En théorie, cela devrait fonctionner correctement avec un référentiel basé sur des fichiers. Je ne l'ai pas essayé cependant.

La source
Translate

Cette réponse est incomplète et imparfaite! Cela ne fonctionne que de TortoisSVN à Fogbugz, mais pas l'inverse. J'ai encore besoin de savoir comment le faire fonctionner à l'envers à partir de Fogbugz (comme il est conçu pour) afin que je puisse voir le numéro de révision dans lequel un bogue est corrigé à partir de Fogbugz tout en regardant un bogue.


URL utiles

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-propertypage.html

http://tortoisesvn.net/issuetracker_integration


Définissez les "crochets"

  1. Accédez à votre compte fogbugz et cliquez sur Extras> Configurer l'intégration du contrôle de source

  2. Téléchargez "post-commit.bat" et le fichier VBScript pour Subversion

  3. Créez un répertoire "hooks" dans un emplacement commun facilement accessible (de préférence sans espaces dans le chemin du fichier)

  4. Placez une copie des fichiers dans les répertoires de hooks

  5. Renommez les fichiers sans l'extension ".safe"

  6. Faites un clic droit sur n'importe quel répertoire.

  7. Sélectionnez "TortoiseSVN> Paramètres" (dans le menu clic droit de la dernière étape)

  8. Sélectionnez "Scripts Hook"

  1. Cliquez sur "Ajouter"

  2. Définissez les propriétés ainsi:

    • Type de crochet: crochet post-validation

    • Chemin de la copie de travail: C: \\ Projects (ou quel que soit le répertoire racine de tous vos projets. Si vous en avez plusieurs, vous devrez effectuer cette étape pour chacun d'entre eux.)

    • Ligne de commande à exécuter: C: \\ subversion \\ hooks \\ post-commit.bat (cela doit pointer vers l'endroit où vous placez votre répertoire de hooks à partir de l'étape 3)

    • J'ai également coché la case Attendre la fin du script ...

ATTENTION: n'oubliez pas le double back-slash! "\\"

Cliquez sur OK...

Adding a Hook Script

Remarque: la capture d'écran est différente, suivez le texte pour les chemins de fichiers, PAS la capture d'écran ...

À ce stade, il semblerait que vous puissiez cliquer sur "Intégration du suivi des problèmes" et sélectionner Fogbugz. Nan. Il renvoie simplement "Il n'y a aucun fournisseur de suivi des problèmes disponible".

  1. Cliquez sur "OK" pour fermer toute la fenêtre de dialogue des paramètres

Configurer les propriétés

  1. Encore une fois, faites un clic droit sur le répertoire racine du projet extrait avec lequel vous voulez travailler (vous devez faire cette étape "configurer les propriétés" pour chaque projet - voir "Migration des propriétés entre les projets" ci-dessous)

  2. Sélectionnez "TortoiseSVN> Propriétés" (dans le menu contextuel de la dernière étape)

  3. Ajoutez cinq paires de valeurs de propriété en cliquant sur "Nouveau ..." et en insérant respectivement les éléments suivants dans "Nom de propriété" et "Valeur de propriété":

bugtraq: libellé BugzID:
bugtraq: message BugzID: %% BUGID %%

bugtraq: nombre vrai

bugtraq: urlhttp: // [votreURL fogbugz ici] /default.asp?%BUGID%

bugtraq: warnifnoissue false

properties window adding new property

  1. Cliquez sur OK"

Validation des modifications et affichage des journaux

Maintenant, lorsque vous vous engagez, vous pouvez spécifier un bogue que la validation corrige. Cela vous oblige à vous engager après avoir corrigé chaque bogue ...

specifying bug addressed when commiting

Lorsque vous affichez le journal (clic droit sur la racine du projet, TortoiseSVN> afficher le journal), vous pouvez voir l'ID de bogue auquel correspond chaque vérification (1), et vous pouvez cliquer sur le numéro d'id de bogue à envoyer à fogbugz pour afficher ce bogue automatiquement si vous regardez le message réel du journal. Assez chouette!


Migration des propriétés entre les projets

  1. Faites un clic droit sur un projet qui a déjà la bonne configuration des propriétés

  2. Sélectionnez "TortoiseSVN> Propriétés" (dans le menu contextuel de l'étape 1)

  3. Mettez en surbrillance toutes les propriétés souhaitées

  4. Cliquez sur "Exporter"

  5. Nommez le fichier après la propriété, et placez-le dans un répertoire facilement accessible (j'ai placé le mien avec les fichiers hooks)

save properties dialogue

  1. Cliquez avec le bouton droit sur le répertoire racine du projet extrait nécessitant des propriétés définies.

  2. Cliquez sur "Importer"

  3. Sélectionnez le fichier que vous avez exporté à l'étape 4 ci-dessus

  4. Cliquez sur Ouvrir

La source
Translate

Pourquoi ne pouvez-vous pas simplement installer un serveur subversion? Si vous téléchargezServeur VisualSVN, qui est gratuit, vous obtenez un serveur http pour votre code source et pouvez ainsi utiliser les scripts FogBugz pour intégrer les deux.

La raison pour laquelle je pose la question est que tous les scripts et la documentation supposent jusqu'à présent que vous avez le serveur, les scripts côté client sont trop nouveaux pour que FogBugz ait des modèles pour eux, vous êtes donc à peu près laissé à vous-même.

La source
Translate

Le problème est que FogBugz créera un lien vers une page Web, et file: /// etc n'est pas une page Web. Pour obtenir l'intégration de deux manières, vous avez besoin d'un serveur Web pour votre référentiel subversion. Soit vous configurez Apache, soit quelque chose d'autre qui peut héberger ces éléments de la bonne manière.

La source
Translate

Je ne suis pas sûr de vous suivre. Avez-vous les référentiels sur le réseau ou sur votre lecteur C: \? Selon deux de vos messages, vous avez les deux, ou aucun, ou l'un d'entre eux ou ...

Vous ne pouvez pas demander à VisualSVN ou Apache de servir en toute sécurité les référentiels à partir d'un partage réseau. Puisque vous avez initialement dit que vous aviez les dépôts sur votre lecteur C: \, c'est pour cela que vous obtenez des conseils. Si vous avez une configuration différente, vous devez nous en parler.

Si vous avez les référentiels sur votre disque dur local, j'installerais VisualSVN ou l'intégrerais dans Apache. VisualSVN peut fonctionner correctement avec Apache, donc si vous suivez cette route, vous n'avez qu'à l'installer. Vos référentiels existants peuvent également être simplement copiés dans le répertoire racine du référentiel de VisualSVN et vous êtes opérationnel.

Je ne sais pas pourquoi ce gros article ici est étiqueté comme incomplet, car il détaille les étapes nécessaires pour configurer un script hook pour informer FogBugz des nouvelles révisions liées aux cas, ce qui devrait être ce que leincompletle message dit que ce n'est pas le cas. Cela ne fonctionne pas?

La source
prochain:
iis - Erreur PHP