Question

J'ai installé TotroiseSVN et j'ai la majorité de mes dépôts qui s'enregistrent et se retirent depuis C:\subversion\ et quelques-uns qui s'enregistrent et sortent d'un partage réseau (j'ai oublié cela lorsque j'ai initialement posté cette question).

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

Comment intégrer TortoiseSVN et Fogbugz ?

Modifier:italique inséré

Était-ce utile?

La solution

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

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

  1. La partie TortoiseSVN - demander à TortoiseSVN d'insérer le Bugid et le lien hypertexte 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, même si elles font en réalité plus que nécessaire.Les informations concernant les crochets concernent en fait la partie 2, et comme cela est souligné, cela ne fonctionne pas "prêt à l'emploi".

Juste pour confirmer, nous envisageons d'utiliser TortoiseSVN SANS un serveur SVN (c.-à-d.référentiels basés sur des fichiers)

J'accède aux référentiels à l'aide de 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écessite svnlook.exe qui est dans le package du serveur.Vous ne le configurez pas réellement pour qu'il fonctionne comme un serveur SVN). Il peut même être possible de simplement copier svnlook.exe depuis un autre ordinateur et placez-le quelque part sur votre chemin.

Partie 1 - TortueSVN

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

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

Configurer les propriétés

  1. Faites un clic 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 respectivement ce qui suit dans "Nom de la propriété" et "Valeur de la propriété" :(assurez-vous de cocher "Appliquer la propriété de manière récursive" pour chacun)

    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 le dit Jeff, vous devrez le faire pour chaque copie de travail, alors suivez ses instructions pour migrer les propriétés.

C'est ça.TortoiseSVN ajoutera désormais un lien vers le bugID FogBugz correspondant lorsque vous validez.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 batch est appelé après chaque validation, ce qui appelle à son tour le script VBS qui effectue la soumission à FogBugz.Le script VBS fonctionne bien dans cette situation, nous n'avons donc pas besoin de le modifier.

Le problème est que le fichier batch est écrit pour fonctionner comme un serveur crochet, mais nous avons besoin d'un client crochet.

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>

C'est pourquoi cela ne fonctionne pas : les paramètres sont erronés.Nous devons modifier le fichier batch afin 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 pose problème, mais il 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 je posterai ici si je le fais.

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

Vous devrez définir les répertoires du hook et du référentiel pour qu'ils correspondent à 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 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 du fichier.

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

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

  7. Sélectionnez "TortoiseSVN > Paramètres" (dans le menu contextuel 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 :Hook post-validation

    • Chemin de la 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 hooks à l'étape 3)

    • Cochez "Attendez la fin du script"

  10. Cliquez deux fois sur OK.

La prochaine fois que vous validerez et saisirez 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.

NOTE:Vous remarquerez que la racine du référentiel est codée en dur dans le fichier batch.Par conséquent, si vous effectuez une extraction à partir de référentiels qui n'ont pas la même racine (par ex.un sur le disque local et un sur le réseau), vous devrez alors utiliser 2 fichiers batch et 2 entrées correspondantes sous Hook Scripts dans les paramètres TSVN.La façon de procéder serait d'avoir 2 arborescences de copie de travail distinctes - une pour chaque racine du référentiel.

Partie 3 - WebSVN

Euh, je ne l'ai pas fait :-)

En lisant 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.

Autres conseils

Cette réponse est incomplète et erronée !Cela ne fonctionne que de TortoisSVN à Fogbugz, mais pas l'inverse.J'ai encore besoin de savoir comment le faire fonctionner à rebours depuis Fogbugz (comme il est conçu pour) afin de pouvoir voir le numéro de révision dans lequel un bogue est résolu depuis Fogbugz tout en examinant un bogue.


URL utiles

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

http://tortoisesvn.net/issuetracker_integration


Réglez les "crochets"

  1. Accédez à votre compte fogbugz et cliquez sur Extras > Configurer l'intégration du contrôle de code 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 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 contextuel 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 :Hook post-validation

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

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

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

AVERTISSEMENT:N'oubliez pas la double barre oblique inverse !"\\"

Cliquez sur OK...

Adding a Hook Script

Note: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.non.Il renvoie simplement "Aucun fournisseur de suivi des problèmes n'est disponible".

  1. Cliquez sur "OK" pour fermer l'ensemble boîte de dialogue de configuration

Configurer les propriétés

  1. Encore une fois, faites un clic droit sur le répertoire racine de l'extrait projet 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 projets" ci-dessous)

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

  3. Ajoutez cinq paires de valeurs de propriété en cliquant sur "Nouveau..." et en insérant le suivant dans "Nom de la propriété" et "Valeur de la propriété" respectivement:

bugtraq:étiquette BugzID :
bugtraq : message BugzID :%%BUGID%%

bugtraq : numéro vrai

traque de bogues : URL http://[votre URL de fogbugz here]/default.asp?%BUGID%

bugtraq : warnifnoissue faux

properties window adding new property

  1. Cliquez sur OK"

Validation des modifications et affichage des journaux

Désormais, lorsque vous effectuez une validation, vous pouvez spécifier un bogue que la validation corrige.Cela vous oblige à vous engager après avoir corrigé chaque bug...

specifying bug addressed when commiting

Lorsque vous affichez le journal (clic droit sur la racine du projet, TortoiseSVN > show log), vous pouvez voir l'identifiant du bogue auquel chaque vérification correspond (1), et vous pouvez cliquer sur le numéro d'identification du bogue à diriger vers fogbugz pour afficher ce bogue automatiquement. si vous regardez le message du journal réel.Plutôt chouette !


Migration de propriétés entre projets

  1. Faites un clic droit sur un projet qui a déjà la configuration de propriétés appropriée

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

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

  4. Cliquez sur "Exporter"

  5. Nommez le fichier d'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 pour lequel les propriétés sont définies.

  2. Cliquez sur "Importer"

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

  4. Cliquez sur Ouvrir

Pourquoi ne pouvez-vous pas simplement installer un serveur Subversion ?Si vous téléchargez Serveur VisualSVN, qui est gratuit, vous disposez d'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 disposez du serveur, les scripts côté client sont trop récents pour que FogBugz ait des modèles pour eux, vous êtes donc pratiquement laissé à vous-même à ce sujet.

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

Je ne suis pas sûr de vous suivre.Avez-vous les référentiels sur le réseau ou sur votre lecteur C:\ ?D'après deux de vos posts, vous avez les deux, ou aucun, ou l'un des deux ou...

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

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 voie, il vous suffit de l'installer.Vos référentiels existants peuvent également simplement être 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 qualifié d'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 le incomplet le message dit que ce n'est pas le cas.Est-ce que ça ne marche pas ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top