svn - Integration von Fogbugz in TortoiseSVN ohne URL / Subversion-Backend

Translate

I've got TotroiseSVN installed and have a majority of my repositories checking in and out from C:\subversion\ und ein paar, die von einer Netzwerkfreigabe ein- und auschecken (das habe ich vergessen, als ich diese Frage ursprünglich gestellt habe).

Dies bedeutet, dass ich per se keinen "Subversion" -Server habe.

Wie integriere ich TortoiseSVN und Fogbugz?

Bearbeiten: Kursivschrift eingefügt

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

Alle Antworten

Translate

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 Teilen:

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

  2. Der FogBugz-Teil- FogBugz dazu bringen, die SVN-Informationen und die 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 dies tatsächlich mehr als erforderlich ist. Das Zeug über die Haken ist eigentlich für Teil 2, und wie bereits erwähnt - es funktioniert nicht "out of the box"

Zur Bestätigung möchten wir TortoiseSVN verwendenOHNEein SVN-Server (dh dateibasierte Repositorys)

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 erfordertsvnlook.exeDas ist im Serverpaket. Sie konfigurieren es nicht so, dass es als SVN-Server funktioniert. Möglicherweise ist es sogar möglich, nur zu kopierensvnlook.exevon einem anderen Computer und legen Sie es irgendwo in Ihren Weg.

Teil 1 - TortoiseSVN

Das Erstellen der TortoiseSVN-Eigenschaften ist alles, was erforderlich ist, um die Links im SVN-Protokoll abzurufen.

Vorherige Anweisungen funktionieren einwandfrei. Ich werde sie hier der Einfachheit halber zitieren:

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 jedes "Eigenschaftsrekursiv anwenden" ankreuzen.)

    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 jetzt beim Festschreiben 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 Batch-Datei nach jedem Commit aufgerufen, und dies ruft wiederum das VBS-Skript auf, das die Übermittlung an FogBugz vornimmt. Das VBS-Skript funktioniert in dieser Situation tatsächlich einwandfrei, sodass wir es nicht ändern müssen.

Das Problem ist, dass die Batch-Datei so geschrieben ist, dass sie alsServerHaken, aber wir brauchen eineKlientHaken.

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

<repository-path> <revision>

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

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

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

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

  • Der Name des Repositorys und der Name der Arbeitskopie sind identisch
  • Sie führen das Festschreiben im Stammverzeichnis der Arbeitskopie durch, nicht in einem Unterordner.

Ich werde sehen, ob ich dieses Problem beheben kann, und werde hier zurück posten, wenn ich es tue.

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

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

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 in befinden\\myserver\svn\und Arbeitskopien befinden sich alle unter `C: \ Projects \

  1. Gehen Sie in Ihr 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 in den gleichen Ordner wie meine Repositorys gelegt. z.B.\\myserver\svn\hooks\

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

  5. Speichern Sie meine Version der Batch-Datei in Ihrem Hooks-Verzeichnis unterpost-commit-tsvn.bat

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

  7. Wählen Sie "TortoiseSVN> Einstellungen" (im Kontextmenü des letzten Schritts)

  8. Wählen Sie "Hook Scripts"

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

    • Hook-Typ: Post-Commit-Hook

    • Arbeitskopiepfad: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 zeigen, wo immer Sie Ihr Hooks-Verzeichnis in Schritt 3 ablegen.)

    • Kreuzen Sie "Warten Sie, bis das Skript beendet ist" an

  10. Klicken Sie zweimal auf OK.

Wenn Sie das nächste Mal einen Bugid festlegen und eingeben, wird dieser an FogBugz gesendet. Die Links funktionieren nicht, aber zumindest die Revisionsinformationen sind vorhanden, und Sie können das Protokoll in TortoiseSVN manuell nachschlagen.

HINWEIS: Sie werden feststellen, dass das Repository-Stammverzeichnis fest in der Batchdatei codiert ist. Wenn Sie aus Repositorys auschecken, die nicht denselben Stamm haben (z. B. eines auf dem lokalen Laufwerk und eines im Netzwerk), müssen Sie daher 2 Batchdateien und 2 entsprechende Einträge unter Hook-Skripten im TSVN verwenden die Einstellungen. Der Weg dazu wäre, zwei separate Working Copy-Bäume zu haben - einen für jedes Repository-Stammverzeichnis.

Teil 3 - WebSVN

Ähm, das habe ich nicht gemacht :-)

Nach dem Lesen der WebSVN-Dokumente scheint sich WebSVN nicht in den SVN-Server zu integrieren, sondern verhält sich wie jeder andere SVN-Client, bietet jedoch eine Webschnittstelle. Theoretisch sollte es dann mit einem dateibasierten Repository gut funktionieren. Ich habe es aber nicht versucht.

Quelle
Translate

Diese Antwort ist unvollständig und fehlerhaft! Es funktioniert nur von TortoisSVN bis Fogbugz, aber nicht umgekehrt. Ich muss noch wissen, wie ich es von Fogbugz aus rückwärts zum Laufen bringen kann (wie es entworfen wurde), damit ich die Revisionsnummer sehen kann, in der ein Fehler von Fogbugz behoben wird, während ich einen Fehler betrachte.


Hilfreiche URLs

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

http://tortoisesvn.net/issuetracker_integration


Setze die "Haken"

  1. Gehen Sie in Ihr 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 Speicherort (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 Kontextmenü des letzten Schritts)

  8. Wählen Sie "Hook Scripts"

  1. Klicken Sie auf "Hinzufügen"

  2. Stellen Sie die Eigenschaften folgendermaßen ein:

    • Hook-Typ: Post-Commit-Hook

    • Arbeitskopiepfad: C: \\ Projekte (oder was auch immer Ihr Stammverzeichnis für alle Ihre Projekte ist. Wenn Sie mehrere haben, müssen Sie diesen Schritt für jedes ausführen.)

    • Auszuführende Befehlszeile: C: \\ Subversion \\ Hooks \\ post-commit.bat (dies muss zeigen, wohin Sie Ihr Hooks-Verzeichnis aus Schritt 3 legen)

    • Ich habe auch das Kontrollkästchen aktiviert, um auf den Abschluss des Skripts zu warten ...

WARNUNG: Vergessen Sie nicht den doppelten Schrägstrich! "\\"

OK klicken...

Adding a Hook Script

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

An diesem Punkt könnten Sie anscheinend auf "Issue Tracker Integration" klicken und Fogbugz auswählen. Nee. Es wird nur "Es sind keine Issue-Tracker-Anbieter verfügbar" zurückgegeben.

  1. Klicken Sie auf "OK", um das gesamte Einstellungsdialogfenster zu schließen

Konfigurieren Sie die Eigenschaften

  1. Klicken Sie erneut mit der rechten Maustaste auf das Stammverzeichnis des ausgecheckten Projekts, mit dem Sie arbeiten möchten (Sie müssen diesen Schritt "Eigenschaften konfigurieren" für jedes Projekt ausführen - siehe "Migrieren von Eigenschaften zwischen Projekten" weiter unten).

  2. Wählen Sie "TortoiseSVN> Eigenschaften" (im Kontextmenü des letzten Schritts)

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

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

bugtraq: Zahl wahr

Bugtraq: URLhttp: // [deinfogbugz 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 jetzt ein Commit durchführen, können Sie einen Fehler angeben, den das Commit behebt. Diese Art von zwingt Sie, 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), sehen Sie die Fehler-ID, die jeder Überprüfung entspricht (1), und Sie können auf die Fehler-ID-Nummer klicken, die an fogbugz weitergeleitet werden soll, um diesen Fehler automatisch anzuzeigen Wenn Sie sich die aktuelle Protokollnachricht ansehen. Ziemlich geschickt!


Migrieren von Eigenschaften zwischen Projekten

  1. Klicken Sie mit der rechten Maustaste auf ein Projekt, das bereits die richtige Eigenschaftenkonfiguration hat

  2. Wählen Sie "TortoiseSVN> Eigenschaften" (aus dem Kontextmenü von 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 mit 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

Quelle
Translate

Warum können Sie nicht einfach einen Subversion-Server installieren? Wenn Sie herunterladenVisualSVN-Server, die kostenlos ist, erhalten Sie einen http-Server für Ihren Quellcode und können so die FogBugz-Skripte zur Integration der beiden verwenden.

Der Grund, den ich frage, ist, dass alle Skripte und Dokumentationen bisher davon ausgehen, dass Sie über den Server verfügen. Clientseitige Skripte sind zu neu für FogBugz, um Vorlagen für sie zu haben, sodass Sie so ziemlich Ihren eigenen Geräten überlassen bleiben.

Quelle
Translate

Das Problem ist, 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 richtig hosten kann.

Quelle
Translate

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 beide oder keine oder eine von ihnen oder ...

Sie können VisualSVN oder Apache nicht dazu bringen, Repositorys von einer Netzwerkfreigabe sicher bereitzustellen. Da Sie ursprünglich sagten, Sie hätten die Repositorys auf Ihrem Laufwerk C: \, erhalten Sie dafür Ratschläge. Wenn Sie ein anderes Setup 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 neben Apache problemlos ausgeführt werden. Wenn Sie diesen Weg gehen, müssen Sie es nur installieren. Ihre vorhandenen Repositorys können auch einfach in das Repository-Stammverzeichnis von VisualSVN kopiert werden, und Sie können loslegen.

Ich bin mir nicht sicher, warum dieser große Beitrag hier als unvollständig gekennzeichnet ist, da er die Schritte beschreibt, die zum Einrichten eines Hook-Skripts erforderlich sind, um FogBugz über die neuen Revisionen zu informieren, die mit den Fällen verknüpft sindunvollständigNachricht sagt, dass es nicht tut. Funktioniert das nicht

Quelle
Nächster:
iis - PHP-Fehler