Integracja Fogbugz z TortoiseSVN bez zaplecza URL/Subversion

Mam zainstalowany TotroiseSVN i większość moich repozytoriów sprawdza się i wychodzi z C:\subversion\ i kilka sprawdzania i wychodzenia z udziału sieciowego (zapomniałem o tym, gdy pierwotnie zamieściłem to pytanie).

Oznacza to, że nie mam serwera "subversion" per-se.

Jak zintegrować TortoiseSVN i Fogbugz?

Edit: wstawiono kursywę

Author: cmcculloh, 2008-08-06

5 answers

Badałem ten problem i udało mi się go uruchomić. Istnieje kilka drobnych problemów, ale można je obejść.

Istnieją 3 różne części tego problemu, jak następuje:

  1. Część TortoiseSVN - uzyskanie przez TortoiseSVN Wstawienia identyfikatora Bugid i hiperłącza do dziennika svn

  2. FogBugz part - getting FogBugz to insert the SVN info and corresponding links

  3. Na WebSVN part - zapewnienie, że linki z FogBugz faktycznie działają

Instrukcje do części 1 są w innej odpowiedzi, chociaż faktycznie robi więcej niż wymagane. W przeciwieństwie do poprzednich części, haki nie działają w sposób automatyczny.]}

Aby potwierdzić, patrzymy na użycie TortoiseSVN BEZ serwera SVN (tj. repozytoria plików)

Uzyskuję dostęp do repozytoriów używając ścieżek UNC, ale działa również dla dysków lokalnych lub zmapowanych dysków.

Wszystko to działa z TortoiseSVN v1.5.3 i SVN Server v1. 5. 2 (musisz zainstalować SVN Server, ponieważ część 2 potrzebuje svnlook.exe, który jest w pakiecie serwera. Nie konfigurujesz go tak, aby działał jako serwer SVN) może być nawet możliwe skopiowanie svnlook.exe z innego komputera i umieszczenie go gdzieś na swojej ścieżce.

Część 1-TortoiseSVN

Tworzenie właściwości TortoiseSVN jest wszystkim, co jest wymagane, aby Pobierz linki w dzienniku SVN.

Poprzednie instrukcje działają dobrze, zacytuję je tutaj dla wygody:

Konfiguracja właściwości

  1. Kliknij prawym przyciskiem myszy katalog główny projektu, z którym chcesz pracować.

  2. Wybierz "TortoiseSVN - > Properties"

  3. Dodaj pięć par wartości właściwości, klikając " Nowy..."i wstawiając odpowiednio w "Property Name "I" Property Value": (upewnij się, że zaznaczasz "Apply property recursively" dla każdej z nich)

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

Jak mówi Jeff, musisz to zrobić dla każdej kopii roboczej, więc postępuj zgodnie z jego instrukcjami dotyczącymi migracji właściwości.

To jest to. TortoiseSVN będzie teraz dodawać link do odpowiedniego identyfikatora FogBugz podczas zatwierdzania. Jeśli tylko tego chcesz, możesz się tu zatrzymać.

Część 2-FogBugz

Aby to zadziałało musimy skonfigurować Skrypty hook. Zasadniczo plik wsadowy jest wywoływany po każdym zatwierdzeniu, a to z kolei wywołuje skrypt VBS, który przesyła dane do FogBugz. Skrypt VBS faktycznie działa dobrze w tej sytuacji, więc nie musimy go modyfikować.

Problem polega na tym, że plik wsadowy jest zapisywany do pracy jako hook serwera, ale potrzebujemy Hooka klienta .

Serwer SVN wywołuje hook Post-commit o następujących parametrach:

<repository-path> <revision>

TortoiseSVN wywołuje hook Post-commit z tymi parametrami:

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

Dlatego to nie działa-parametry są błędne. Musimy zmienić plik wsadowy tak, aby przekazywał prawidłowe parametry do skryptu VBS.

Zauważysz, że TSVN nie przechodzi przez ścieżkę repozytorium, co jest problemem, ale działa w następujących okolicznościach:

  • Nazwa repozytorium i nazwa kopii roboczej są takie same
  • commit wykonujesz w korzeniu kopii roboczej, a nie w podfolder.

Zobaczę, czy mogę rozwiązać ten problem i wyślę tutaj, jeśli to zrobię.

Oto mój zmieniony plik wsadowy, który działa (proszę wybaczyć nadmierne komentarze...)

Musisz ustawić katalog Hooka i repozytorium tak, aby pasowały do twojej konfiguracji.

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

Zakładam, że repozytoria są w \\myserver\svn\ a kopie robocze są pod " C:\Projects\

  1. Wejdź na swoje konto FogBugz i kliknij Dodatki - > Konfiguracja Integracja Kontroli Źródła

  2. Pobierz plik VBScript dla Subversion (nie przejmuj się plikiem wsadowym)

  3. Utwórz folder do przechowywania skryptów Hooka. Umieściłem go w tym samym folderze co moje repozytoria. np. \\myserver\svn\hooks\

  4. Zmień nazwę VBscript, aby usunąć .safe na końcu nazwy pliku.

  5. Zapisz moją wersję pliku wsadowego w katalogu hooks, jako post-commit-tsvn.bat

  6. Kliknij prawym przyciskiem myszy na dowolnym katalog.

  7. Wybierz "TortoiseSVN > Ustawienia" (w menu prawym przyciskiem myszy od ostatniego kroku)

  8. Wybierz "Hook Scripts"

  9. Kliknij "Dodaj" i ustaw właściwości w następujący sposób:

    • Typ Hooka: Post-Commit Hook

    • Working Copy Path: C:\Projects (lub jakikolwiek katalog główny dla wszystkich twoich projektów jest.)

    • Wiersz poleceń do wykonania: \\myserver\svn\hooks\post-commit-tsvn.bat (musi wskazywać miejsce, w którym umieścisz swój katalog hooks w kroku 3)

    • Zaznacz "poczekaj na zakończenie skryptu"

  10. Kliknij dwukrotnie OK.

Przy następnym zatwierdzeniu i wpisaniu identyfikatora Bugid, zostanie on przesłany do FogBugz. Linki nie będą działać, ale przynajmniej informacje o rewizji są tam i możesz ręcznie wyszukać log w TortoiseSVN.

Uwaga: zauważysz, że główny repozytorium jest mocno zakodowany w pliku wsadowym. W rezultacie, jeśli wymeldujesz się z repozytoriów które nie mają tego samego korzenia (np. jeden na dysku lokalnym i jeden w sieci) następnie będziesz musiał użyć 2 plików wsadowych i 2 odpowiadających im wpisów pod skryptami Hooka w Ustawieniach TSVN. Sposobem na to byłoby posiadanie 2 oddzielnych drzew kopii roboczych - po jednym dla każdego korzenia repozytorium.

Część 3-WebSVN

Errr, jeszcze tego nie robiłam: -)

Z lektury dokumentów WebSVN wynika, że WebSVN nie integruje się z serwerem SVN, po prostu zachowuje się jak każdy inny SVN klient ale prezentuje interfejs WWW. Teoretycznie powinno to działać dobrze z repozytorium opartym na plikach. Nie próbowałem.

 18
Author: Andy Madge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-22 14:38:06

Ta odpowiedź jest niekompletna i błędna! Działa tylko z TortoisSVN do Fogbugz, ale nie na odwrót. Nadal muszę wiedzieć, jak sprawić, by działał wstecz z Fogbugz (tak jak to zostało zaprojektowane), aby zobaczyć numer wersji, do której jest adresowany błąd z Fogbugz, patrząc na błąd.


Pomocny URL

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

Http://tortoisesvn.net/issuetracker_integration


Ustaw "Haki"

  1. Przejdź do swojego konta fogbugz i kliknij Dodatki > Konfiguracja integracji kontroli źródła

  2. Pobierz " post-commit.bat " i plik VBScript dla Subversion

  3. Utwórz katalog "Hooki" we wspólnej, łatwo dostępnej lokalizacji (najlepiej bez spacji w ścieżce pliku)

  4. Umieszczanie kopii plików w katalogach hooków

  5. Zmień nazwy plików bez ".bezpieczne " rozszerzenie

  6. Kliknij prawym przyciskiem myszy na dowolnym katalogu.

  7. Wybierz "TortoiseSVN > Ustawienia" (w menu prawym przyciskiem myszy od ostatniego kroku)

  8. Wybierz " Hak Skrypty "

Http://www.chomperstomp.com/img/tortoiseSVNSettings.png

  1. Kliknij "Dodaj"

  2. Ustaw właściwości tak:

    • Typ Hooka: Post-Commit Hook

    • Robocza ścieżka kopiowania: C:\\Projects (lub jaki jest Twój katalog główny dla wszystkich twoich projektów. Jeśli masz wiele, musisz wykonać ten krok dla każdego z nich.)

    • Wiersz Poleceń Do Wykonania: C:\\subversion\\hooks\\post-commit.bat (musi to wskazywać miejsce, w którym umieścisz katalog hooków z kroku 3)

    • Wybrałem również pole wyboru, aby poczekać na zakończenie skryptu...

Uwaga: nie zapomnij o podwójnym back-slashu! "\\"

Kliknij OK...

Dodawanie skryptu Hooka

Uwaga: zrzut ekranu jest inny, postępuj zgodnie z tekstem ścieżek plików, a nie zrzutu ekranu...

W tym momencie wydaje ci się, że można kliknąć "Integracja śledzenia problemów" i wybrać Fogbugz. nie. Po prostu zwraca "nie ma dostępnych dostawców śledzenia problemów".

  1. kliknij "OK", aby zamknąć całość okno dialogowe Ustawienia

Konfiguracja właściwości

  1. Po raz kolejny kliknij prawym przyciskiem myszy na głównym katalogu sprawdzonego projekt, z którym chcesz pracować (musisz wykonać ten krok "konfiguracja właściwości" dla każdego projektu -- zobacz " migracja właściwości między projektami" poniżej)

  2. Wybierz "TortoiseSVN > właściwości" (w menu kliknij prawym przyciskiem myszy od ostatniego kroku)

  3. Dodaj pięć par wartości właściwości, klikając "Nowy..."i wstawianie następujące W "Nazwa nieruchomości" i "Wartość nieruchomości":

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

Bugtraq: liczba true

Bugtraq: url http: / / [your FogBugz URL tutaj] / default.asp?%BUGID %

Bugtraq: warnifnoissue false

okno właściwościdodawanie nowej nieruchomości

  1. kliknij " OK "

Komentowanie zmian i przeglądanie logów

Teraz, gdy komentujesz, możesz podać jeden błąd, który adresuje commit. Ten rodzaj zmusza cię do commit po naprawieniu każdego błędu...

określanie błędu adresowanego podczas komentowania

Podczas przeglądania dziennika (kliknij prawym przyciskiem myszy główny projekt, TortoiseSVN > Pokaż dziennik) możesz zobaczyć identyfikator błędu, który odpowiada każdemu sprawdzeniu do (1) i możesz kliknąć numer identyfikatora błędu, który ma zostać przeniesiony do fogbugz, aby wyświetlić ten błąd automatycznie, jeśli patrzysz na rzeczywisty komunikat dziennika. Całkiem sprytne!

Http://www.chomperstomp.com/img/viewLog.png


Migracja Właściwości Pomiędzy Projektami

  1. Kliknij prawym przyciskiem myszy na projekcie, który ma już odpowiednią konfigurację właściwości

  2. Wybierz "TortoiseSVN > Właściwości" (z menu kliknij prawym przyciskiem myszy krok 1)

  3. Zaznacz wszystkie pożądane właściwości

  4. Kliknij "Eksportuj"

  5. Nazwa pliku po właściwości i umieścić w łatwo dostępnym katalogu (umieściłem mój z plikami hooków)

Zapisz okno dialogowe Właściwości

  1. Kliknij prawym przyciskiem myszy na głównym katalogu pobranego projektu, dla którego są ustawione właściwości.

  2. Kliknij "Importuj"

  3. Wybierz wyeksportowany plik w kroku 4 above

  4. Kliknij Otwórz

 11
Author: cmcculloh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-01 09:10:27

Dlaczego nie można po prostu zainstalować serwera subversion? Po pobraniu VisualSVN Server, który jest darmowy, otrzymujesz serwer http dla swojego kodu źródłowego i dzięki temu możesz użyć skryptów FogBugz do ich integracji.

Pytam, ponieważ wszystkie skrypty i dokumentacja do tej pory zakłada, że masz serwer, skrypty po stronie klienta są zbyt nowe dla FogBugz, aby mieć dla nich szablony, więc jesteś prawie pozostawiony do własnych urządzeń na tym.

 2
Author: Lasse Vågsæther Karlsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-08 11:02:16

Problem polega na tym, że FogBugz będzie linkował do strony WWW, a plik: / / / etc nie jest stroną www. Aby uzyskać integrację na dwa sposoby, potrzebujesz serwera www dla swojego repozytorium subversion. Albo skonfigurować Apache, albo coś innego, co może hostować te rzeczy we właściwy sposób.

 1
Author: Lasse Vågsæther Karlsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-13 13:08:28

Nie jestem pewien czy nadążam za tobą. Czy masz repozytoria w sieci lub na dysku C:\? Według dwóch Twoich postów, masz oba, lub żaden, lub jeden z nich lub...

Nie można uzyskać VisualSVN lub Apache, aby bezpiecznie obsługiwać repozytoria z udziału sieciowego. Ponieważ pierwotnie powiedziałeś, że masz repozytoria na dysku C:\, to jest to, co otrzymasz poradę. Jeśli masz inną konfigurację, musisz nam o tym powiedzieć.

Jeśli masz repozytoria na swoim lokalnym harddisk, zainstalowałbym VisualSVN, albo zintegrował go z Apache. VisualSVN może działać dobrze obok Apache, więc jeśli idziesz tą trasą, musisz go tylko zainstalować. Istniejące repozytoria można po prostu skopiować do katalogu głównego repozytorium VisualSVN i można je uruchomić.

Nie jestem pewien, dlaczego ten wielki post jest tutaj oznaczony jako niekompletny, ponieważ zawiera szczegóły kroków niezbędnych do skonfigurowania skryptu Hooka, aby poinformować FogBugz o nowych zmianach związanych z przypadkami, które powinny być co niekompletna wiadomość mówi, że nie działa. To nie działa?

 0
Author: Lasse Vågsæther Karlsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-08 11:34:20