Wie implementiere ich das Post-Commit-Hook mit Trac & SVN in einer Windows-Umgebung?
Ich bin in einer windows-Umgebung mit Trac /SVN und ich will commits in das repository zu integrieren, um Trac und schließen Sie die Fehler, die festgestellt wurden, in den SVN Kommentar.
Ich weiß, es gibt einige post-commit-hooks zu tun, aber es gibt nicht viel Informationen darüber, wie zu tun es auf windows.
Jemand gemacht erfolgreich? Und was waren die Schritte, die Ihr folgten, zu erreichen?
Hier ist der Haken muss ich setzen in SVN, aber ich bin mir nicht ganz sicher, wie man dies in der Windows-Umgebung.
InformationsquelleAutor Dean Poulin | 2008-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benjamins Antwort liegt nahe, aber unter Windows müssen Sie die hook-Skript-Dateien eine ausführbare Dateiendung wie .bat-oder .cmd. Ich verwenden .cmd. Sie können die template-Skripte, die unix-shell-Skripte, shell-Skripte und konvertieren Sie Sie in .bat/.cmd-syntax.
Aber eine Antwort auf die Frage der Integration mit Trac, gehen Sie folgendermaßen vor.
Sicherzustellen, dass Python.exe ist auf dem system Pfad. Dies wird Ihr Leben leichter machen.
Erstellen post-commit.cmd in \hooks-Ordner. Dies ist die eigentliche hook-Skript, dass Subversion ausführen in der post-commit-Ereignis.
Erstellen trac-post-commit.cmd in \hooks Ordner:
Erstellen trac-post-commit-resolve-ticket-ref.py in \hooks-Ordner. Ich verwendet das gleiche script von EdgeWall, nur ich umbenannt, damit es besser klären seinen Zweck.
InformationsquelleAutor Craig Boland
Okay, nun, ich habe einige Zeit, um nach meiner Erfahrung nach herauszufinden dies alle, und vielen Dank an Craig für mich immer auf dem richtigen Weg. Hier ist, was Sie tun müssen (mindestens mit SVN v1.4 und Trac v0.10.3):
%~dp0\trac-post-commit-hook.cmd %1 %2
Die wichtigsten Teile sind hier, um Ihre TRAC_ENV ist der Pfad zu dem repository root (SET TRAC_ENV=C:\trac\MySpecialProject)
Den nächsten AUßERORDENTLICH WICHTIG bei diesem script ist Folgendes zu tun:
wenn Sie in der Skript-Datei oben bin ich mit svnlook (das ist eine Befehl Linie Dienstprogramm, die mit SVN), um die LOG-Mitteilung und der Autor, der die commit in das repository.
Dann die nächste Zeile des Skripts ist eigentlich Aufruf der Python-code, um das schließen des tickets und zum analysieren der log-Meldung. Ich hatte, dies zu ändern: in der Logmeldung und des Autors (die Benutzernamen, den ich bei einem Trac entsprechen den Benutzernamen in der SVN-so einfach ist das).
Die obige Zeile in das Skript übergeben wird, in das python-Skript die Trac-Umgebung, die revision, die person, von der die zu Begehen, und Ihren Kommentar.
Hier ist das Python Skript, das ich benutzt habe. Eine Sache, die ich Tat, zusätzlich zu den regulären Skript verwenden wir ein benutzerdefiniertes Feld (fixed_in_ver), welcher durch unser QA-team zu sagen, wenn die fix sind Sie zu validieren, ist in der version von code, den Sie testen in der QA. Also modifizierte ich den code in die python-Skript-update, das Feld auf dem ticket. Sie können entfernen Sie diesen code, da Sie nicht brauchen, aber es ist ein gutes Beispiel dafür, was Sie tun können, um update-benutzerdefinierte Felder in Trac-wenn Sie wollen auch zu tun.
Hab ich das, indem der Anwender wahlweise in Ihrem Kommentar etwas wie:
Dann verwende ich die gleiche Technik, die das python-Skript verwendet, mit regulären Ausdrücken zu Holen Sie sich die Informationen heraus. Es war nicht allzu schlimm.
Ohnehin, hier ist das python-script, das ich verwendet, dies ist Hoffentlich ein gutes tutorial, genau was ich Tat, um es zu bekommen arbeiten in der windows-Welt, so dass Sie alle können Sie nutzen, diese in Ihrem eigenen shop...
Wenn Sie nicht wollen, um mit meinen zusätzlichen code für die Aktualisierung der benutzerdefinierten Feldes, bekommen Sie das Basis-script von dieser Stelle, wie erwähnt, von Craig oben (Skript Von Edgewall)
InformationsquelleAutor Dean Poulin
Post-commit-hooks Leben in das "hooks" Verzeichnis, wo immer Sie das repository auf der server-Seite. Ich weiß nicht, wo Sie Sie haben in Ihrer Umgebung, so ist dies nur ein Beispiel
z.B. (windows):
z.B. (llinux/unix):
InformationsquelleAutor Benjamin W. Smith
Eine Sache, die werde ich hinzufügen, "Code Monkey' s Antwort ist PERFEKT" ist, misstrauisch zu sein (mein Fehler)
Hatte ich nicht die Nicht-Wege-System und brauchte eine Weile, um das offensichtliche nicht sehen 😀
Gleichen Sie einfach sicher, dass niemand macht den gleichen Fehler! Dank Code-Monkey! 1000000000 Punkte 😀
InformationsquelleAutor
Zunächst ein großer Dank an die Code-Monkey!
Es ist jedoch wichtig, um die richtige python-Skript je nach trac version. Um die entsprechende version aus SVN Auschecken, der Ordner:
http://svn.edgewall.com/repos/trac/branches/xxx-stable/contrib
wo xxx entspricht der trac-version Sie verwenden, zum Beispiel: 0.11
Andernfalls erhalten Sie ein post-commit-Fehler, der wie folgt aussieht:
commit failed (details follow): MERGE of '/svn/project/trunk/web/Verzeichnis/': 200 OK
InformationsquelleAutor
Für alle Windows-Benutzer installieren will neueste trac (0.11.5):
Folgen Sie den Anweisungen auf Trac - Website mit dem Namen TracOnWindows.
Download 32bit 1.5 Python, auch wenn Sie 64-bit-Windows.
Anmerkung: ich sah irgendwo eine Anleitung, wie zu kompilieren trac zu arbeiten nativ auf 64bit system.
Installieren, wenn Sie alle, die erforderlich ist, gehen Sie zu dem repository-Ordner. Es gibt Ordner-Haken.
Innen ist es mit Dateien Code Monkey erwähnt, aber nicht erstellen "trac-post-commit-resolve-ticket-ref.py" wie er Tat. Lassen Sie sich beraten von Quant Analyst und tun, wie er sagte:
"Es ist jedoch wichtig, um die richtige python-Skript je nach trac version. Um die entsprechende version aus SVN Auschecken den Ordner:
http://svn.edgewall.com/repos/trac/branches/xxx-stable/contrib
wobei xxx entspricht der trac-version Sie verwenden, zum Beispiel: 0.11"
Von dort downoad file "trac-post-commit-hook" - und steckte es in den hooks Ordner.
Bearbeiten Sie diese Linien in trac-post-commit.cmd
Erinnern keine last \ !!!
Habe ich entfernt Zitate aus dem letzten line-r "%REV%"- r %REV%, aber ich weiß nicht, ob das notwendig ist. Dies wird jetzt nicht mehr arbeiten ( zumindest auf meinem win 2008 server ), da Haken schlägt fehl ( commit ok gehen). Dies hat zu tun mit Berechtigungen. Standardmäßig werden die Berechtigungen eingeschränkt werden, und wir müssen es erlauben, python, svn oder trac ( was ich nicht weiß ) zu ändern trac Informationen. So gehen Sie zu Ihrem trac Ordner Projekt Ordner db Ordner mit der rechten klicken Sie auf trac.db und wählen Sie "Eigenschaften". Gehen Sie auf die Registerkarte Sicherheit, und Bearbeiten Sie die Berechtigungen, damit jeder die volle Kontrolle. Dies ist nicht so sicher, aber ich verlor den ganzen Tag auf diese Sicherheit egal und ich will nicht zu verschwenden, andere nur zu finden, für die Benutzer, die Sie aktivieren sollten Berechtigungen.
Hoffe, das hilft....
InformationsquelleAutor zveljkovic