Frage

Ich habe TotroiseSVN installiert und die meisten meiner Repositorys werden von C:\subversion\ ein- und ausgecheckt. und ein paar, die sich bei einer Netzwerkfreigabe ein- und auschecken (das habe ich vergessen, als ich diese Frage ursprünglich gepostet habe).

Das bedeutet, dass ich per se keinen „Subversion“-Server habe.

Wie integriere ich TortoiseSVN und Fogbugz?

Bearbeiten:Kursivschrift eingefügt

War es hilfreich?

Lösung

Ich habe dieses Problem untersucht und es geschafft, es zum Laufen zu bringen.Es gibt ein paar kleinere Probleme, die jedoch umgangen werden können.

Dieses Problem besteht aus drei verschiedenen Teilen:

  1. Der TortoiseSVN-Teil - TortoiseSVN dazu bringen, die Bugid und den Hyperlink in das SVN-Protokoll einzufügen

  2. Der FogBugz-Teil - FogBugz dazu bringen, die SVN-Informationen und entsprechenden Links einzufügen

  3. Der WebSVN-Teil - Sicherstellen, dass die Links von FogBugz tatsächlich funktionieren

Anweisungen für Teil 1 finden Sie in einer anderen Antwort, obwohl diese tatsächlich mehr leistet als erforderlich.Der Kram mit den Haken ist eigentlich Teil 2, und wie bereits erwähnt, funktioniert er nicht „out of the box“.

Nur zur Bestätigung: Wir erwägen die Verwendung von TortoiseSVN OHNE ein SVN-Server (d. h.dateibasierte Repositories)

Ich greife über UNC-Pfade auf die Repositorys zu, aber es funktioniert auch für lokale Laufwerke oder zugeordnete Laufwerke.

All dies funktioniert mit TortoiseSVN v1.5.3 und SVN Server v1.5.2 (Sie müssen SVN Server installieren, da Teil 2 dies benötigt svnlook.exe welches im Serverpaket enthalten ist.Sie konfigurieren es nicht wirklich so, dass es als SVN-Server funktioniert. Möglicherweise ist es sogar möglich, einfach zu kopieren svnlook.exe von einem anderen Computer und legen Sie es irgendwo auf Ihrem Weg ab.

Teil 1 – TortoiseSVN

Um die Links im SVN-Protokoll abzurufen, ist lediglich das Erstellen der TortoiseSVN-Eigenschaften erforderlich.

Frühere Anweisungen funktionieren einwandfrei. Der Einfachheit halber zitiere ich sie hier:

Konfigurieren Sie die Eigenschaften

  1. Klicken Sie mit der rechten Maustaste auf das Stammverzeichnis des ausgecheckten Projekts, mit dem Sie arbeiten möchten.

  2. Wählen Sie „TortoiseSVN -> Eigenschaften“

  3. Fügen Sie fünf Eigenschaftswertpaare hinzu, indem Sie auf „Neu…“ klicken und Folgendes in „Eigenschaftsname“ bzw. „Eigenschaftswert“ einfügen:(Stellen Sie sicher, dass Sie für jede einzelne Eigenschaft das Häkchen bei „Eigenschaft rekursiv anwenden“ gesetzt haben.)

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

Wie Jeff sagt, müssen Sie dies für jede Arbeitskopie tun. Befolgen Sie daher seine Anweisungen zum Migrieren der Eigenschaften.

Das ist es.TortoiseSVN fügt nun beim Commit einen Link zur entsprechenden FogBugz-BugID hinzu.Wenn das alles ist, was Sie wollen, können Sie hier aufhören.

Teil 2 – FogBugz

Damit dies funktioniert, müssen wir die Hook-Skripte einrichten.Grundsätzlich wird die Batchdatei nach jedem Commit aufgerufen, und diese wiederum ruft das VBS-Skript auf, das die Übermittlung an FogBugz durchführt.Das VBS-Skript funktioniert in dieser Situation tatsächlich einwandfrei, sodass wir es nicht ändern müssen.

Das Problem besteht darin, dass die Batchdatei so geschrieben ist, dass sie als funktioniert Server Haken, aber wir brauchen einen Klient Haken.

Der SVN-Server ruft den Post-Commit-Hook mit diesen Parametern auf:

<repository-path> <revision>

TortoiseSVN ruft den Post-Commit-Hook mit diesen Parametern auf:

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

Deshalb funktioniert es nicht – die Parameter sind falsch.Wir müssen die Batchdatei ändern, damit sie die richtigen Parameter an das VBS-Skript übergibt.

Sie werden feststellen, dass TSVN den Repository-Pfad nicht weitergibt, was ein Problem darstellt, aber unter den folgenden Umständen funktioniert:

  • Der Repository-Name und der Name der Arbeitskopie sind identisch
  • Sie führen den Commit im Stammverzeichnis der Arbeitskopie durch, nicht in einem Unterordner.

Ich werde sehen, ob ich dieses Problem beheben kann, und werde es hier wieder posten, wenn ich es schaffe.

Hier ist meine geänderte Batch-Datei, die funktioniert (entschuldigen Sie bitte die übermäßigen Kommentare ...)

Sie müssen die Hook- und Repository-Verzeichnisse so einstellen, dass sie zu Ihrem Setup passen.

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

Ich gehe davon aus, dass sich die Repositories unter befinden \\myserver\svn\ und Arbeitskopien befinden sich alle unter „C:\Projekte\“

  1. Gehen Sie zu Ihrem FogBugz-Konto und klicken Sie auf Extras -> Quellcodeverwaltungsintegration konfigurieren

  2. Laden Sie die VBScript-Datei für Subversion herunter (kümmern Sie sich nicht um die Batch-Datei)

  3. Erstellen Sie einen Ordner zum Speichern der Hook-Skripte.Ich habe es im selben Ordner wie meine Repositorys abgelegt.z.B. \\myserver\svn\hooks\

  4. Benennen Sie VBscript um, um das zu entfernen .safe am Ende des Dateinamens.

  5. Speichern Sie meine Version der Batchdatei in Ihrem Hooks-Verzeichnis unter post-commit-tsvn.bat

  6. Klicken Sie mit der rechten Maustaste auf ein beliebiges Verzeichnis.

  7. Wählen Sie „TortoiseSVN > Einstellungen“ (im Rechtsklick-Menü aus dem letzten Schritt).

  8. Wählen Sie „Hook-Skripte“

  9. Klicken Sie auf „Hinzufügen“ und legen Sie die Eigenschaften wie folgt fest:

    • Hakentyp:Post-Commit-Hook

    • Pfad der Arbeitskopie: C:\Projects (oder was auch immer Ihr Stammverzeichnis für alle Ihre Projekte ist.)

    • Auszuführende Befehlszeile: \\myserver\svn\hooks\post-commit-tsvn.bat (Dies muss auf den Ort verweisen, an dem Sie in Schritt 3 Ihr Hooks-Verzeichnis abgelegt haben.)

    • Aktivieren Sie „Warten Sie, bis das Skript abgeschlossen ist“.

  10. Klicken Sie zweimal auf OK.

Wenn Sie das nächste Mal eine Bug-ID festlegen und eingeben, wird diese an FogBugz übermittelt.Die Links funktionieren nicht, aber zumindest sind die Revisionsinformationen vorhanden und Sie können das Protokoll in TortoiseSVN manuell nachschlagen.

NOTIZ:Sie werden feststellen, dass das Repository-Stammverzeichnis fest in der Batchdatei codiert ist.Wenn Sie also aus Repositorys auschecken, die nicht dasselbe Stammverzeichnis haben (z. B.eine auf dem lokalen Laufwerk und eine im Netzwerk), dann müssen Sie zwei Batchdateien und zwei entsprechende Einträge unter Hook-Skripten in den TSVN-Einstellungen verwenden.Der Weg, dies zu erreichen, wäre, zwei separate Arbeitskopiebäume zu haben – einen für jeden Repository-Stamm.

Teil 3 – WebSVN

Ähm, das habe ich noch nicht gemacht :-)

Aus der Lektüre der WebSVN-Dokumente geht hervor, dass WebSVN sich nicht wirklich in den SVN-Server integriert, sondern sich einfach wie jeder andere SVN-Client verhält, aber über eine Webschnittstelle verfügt.Theoretisch sollte es dann mit einem dateibasierten Repository gut funktionieren.Ich habe es allerdings nicht ausprobiert.

Andere Tipps

Diese Antwort ist unvollständig und fehlerhaft!Es funktioniert nur von TortoisSVN zu Fogbugz, aber nicht umgekehrt.Ich muss noch wissen, wie ich es von Fogbugz aus rückwärts zum Laufen bringen kann (wie es vorgesehen ist), damit ich beim Betrachten eines Fehlers die Revisionsnummer sehen kann, in der ein Fehler von Fogbugz behoben wird.


Hilfreiche URLs

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

http://tortoisesvn.net/issuetracker_integration


Setzen Sie die „Hooks“

  1. Gehen Sie zu Ihrem Fogbugz-Konto und klicken Sie auf Extras > Quellcodeverwaltungsintegration konfigurieren

  2. Laden Sie „post-commit.bat“ und die VBScript-Datei für Subversion herunter

  3. Erstellen Sie ein „Hooks“-Verzeichnis an einem gemeinsamen, leicht zugänglichen Ort (vorzugsweise ohne Leerzeichen im Dateipfad).

  4. Platzieren Sie eine Kopie der Dateien in den Hooks-Verzeichnissen

  5. Benennen Sie die Dateien ohne die Erweiterung „.safe“ um

  6. Klicken Sie mit der rechten Maustaste auf ein beliebiges Verzeichnis.

  7. Wählen Sie „TortoiseSVN > Einstellungen“ (im Rechtsklick-Menü aus dem letzten Schritt)

  8. Wählen Sie „Hook-Skripte“

  1. Klicken Sie auf „Hinzufügen“

  2. Legen Sie die Eigenschaften folgendermaßen fest:

    • Hakentyp:Post-Commit-Hook

    • Pfad der Arbeitskopie:C:\\Projects (oder was auch immer Ihr Stammverzeichnis für alle Ihre Projekte ist).Wenn Sie mehrere haben, müssen Sie diesen Schritt für jeden einzelnen durchführen.)

    • Auszuführende Befehlszeile:C:\\subversion\\hooks\\post-commit.bat (dies muss auf den Ort verweisen, an dem Sie Ihr Hooks-Verzeichnis aus Schritt 3 abgelegt haben)

    • Ich habe auch das Kontrollkästchen „Warten, bis das Skript abgeschlossen ist“ aktiviert.

WARNUNG:Vergessen Sie nicht den doppelten Backslash!„\\“

OK klicken...

Adding a Hook Script

Notiz:Der Screenshot ist anders. Folgen Sie dem Text für die Dateipfade, NICHT dem Screenshot ...

An dieser Stelle könnten Sie anscheinend auf „Issue Tracker-Integration“ klicken und Fogbugz auswählen.Nein.Es wird lediglich „Es sind keine Issue-Tracker-Anbieter verfügbar“ zurückgegeben.

  1. Klicken Sie auf "OK", um das Dialogfenster des gesamten Einstellungsdialogs zu schließen

Konfigurieren Sie die Eigenschaften

  1. Klicken Sie noch einmal mit der rechten Maustaste auf das Stammverzeichnis des überprüften Projekts, mit dem Sie arbeiten möchten (Sie müssen für jedes Projekt "den Eigenschaften konfigurieren" ausführen. Siehe "Migration zwischen den Projekten" unten).

  2. Wählen Sie "Tortoisesvn> Eigenschaften" (im Rechtsmenü im letzten Schritt klicken Sie im Rechtsmenü).

  3. Fügen Sie fünf Eigenschaftswertpaare hinzu, indem Sie auf "New ..." klicken und Folgendes in "Eigenschaftsname" bzw. "Eigenschaftswert" einfügen:

bugtraq:label BugzID:
bugtraq:message BugzID:%%BUGID%%

bugtraq:Zahl wahr

bugtraq:url http://[Ihr Fogbugz URL hier] /default.asp?%bugid%

bugtraq:warnifnoissue false

properties window adding new property

  1. OK klicken"

Übernehmen von Änderungen und Anzeigen der Protokolle

Wenn Sie nun einen Commit durchführen, können Sie einen Fehler angeben, den der Commit behebt.Dies zwingt Sie dazu, sich zu verpflichten, nachdem Sie jeden Fehler behoben haben ...

specifying bug addressed when commiting

Wenn Sie das Protokoll anzeigen (Rechtsklick auf das Stammverzeichnis des Projekts, TortoiseSVN > Protokoll anzeigen), können Sie die Fehler-ID sehen, der jede Prüfung entspricht (1), und Sie können auf die Fehler-ID-Nummer klicken, um zu fogbugz zu gelangen und diesen Fehler automatisch anzuzeigen wenn Sie sich die eigentliche Protokollmeldung ansehen.Ziemlich schick!


Eigenschaften zwischen Projekten migrieren

  1. Klicken Sie mit der rechten Maustaste auf ein Projekt, das bereits über die richtige Eigenschaftenkonfiguration verfügt

  2. Wählen Sie „TortoiseSVN > Eigenschaften“ (aus dem Rechtsklick-Menü aus Schritt 1)

  3. Markieren Sie alle gewünschten Eigenschaften

  4. Klicken Sie auf „Exportieren“

  5. Benennen Sie die Datei nach der Eigenschaft und legen Sie sie in einem leicht zugänglichen Verzeichnis ab (ich habe meine Datei bei den Hooks-Dateien abgelegt).

save properties dialogue

  1. Klicken Sie mit der rechten Maustaste auf das Stammverzeichnis des ausgecheckten Projekts, für das Eigenschaften festgelegt werden müssen.

  2. Klicken Sie auf „Importieren“

  3. Wählen Sie die Datei aus, die Sie in Schritt 4 oben exportiert haben

  4. Klicken Sie auf Öffnen

Warum kann man nicht einfach einen Subversion-Server installieren?Wenn Sie herunterladen VisualSVN-Server, das kostenlos ist, erhalten Sie einen http-Server für Ihren Quellcode und können so die FogBugz-Skripte zur Integration beider verwenden.

Der Grund, warum ich frage, ist, dass alle Skripte und Dokumentationen bisher davon ausgehen, dass Sie über den Server verfügen. Clientseitige Skripte sind zu neu, als dass FogBugz über Vorlagen dafür verfügen könnte, sodass Sie damit weitgehend auf sich allein gestellt sind.

Das Problem besteht darin, dass FogBugz auf eine Webseite verlinkt und file:///etc keine Webseite ist.Um die Integration auf zwei Arten zu erreichen, benötigen Sie einen Webserver für Ihr Subversion-Repository.Richten Sie entweder Apache oder etwas anderes ein, das diese Dinge ordnungsgemäß hosten kann.

Ich bin mir nicht sicher, ob ich dir folge.Haben Sie die Repositorys im Netzwerk oder auf Ihrem Laufwerk C:\?Laut zwei Ihrer Beiträge haben Sie beides oder keines davon oder eines davon oder ...

Sie können VisualSVN oder Apache nicht dazu bringen, Repositorys sicher von einer Netzwerkfreigabe aus bereitzustellen.Da Sie ursprünglich gesagt haben, dass Sie die Repositories auf Ihrem Laufwerk C:\ haben, erhalten Sie dazu Ratschläge.Wenn Sie eine andere Konfiguration haben, müssen Sie uns dies mitteilen.

Wenn Sie die Repositorys auf Ihrer lokalen Festplatte haben, würde ich VisualSVN installieren oder in Apache integrieren.VisualSVN kann problemlos zusammen mit Apache ausgeführt werden. Wenn Sie diesen Weg gehen, müssen Sie es also nur installieren.Ihre vorhandenen Repositorys können auch einfach in das Repository-Stammverzeichnis von VisualSVN kopiert werden, und schon kann es losgehen.

Ich bin mir nicht sicher, warum dieser große Beitrag hier als unvollständig gekennzeichnet ist, da er die notwendigen Schritte zum Einrichten eines Hook-Skripts beschreibt, um FogBugz über die neuen Revisionen zu informieren, die mit den Fällen verknüpft sind, was eigentlich der Fall sein sollte unvollständig Die Meldung besagt, dass dies nicht der Fall ist.Funktioniert das nicht?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top