Vo vývoji softvéru je veľmi bežné, že zmeny súvisia s konkrétnou chybou alebo ID problému. Používatelia systémov na sledovanie chýb (sledovače problémov) by chceli zmeny, ktoré vykonajú v Subversion, spojiť s konkrétnym ID v sledovači problémov. Väčšina nástrojov na sledovanie problémov preto poskytuje skript háku pred odovzdaním, ktorý analyzuje správu záznamu a vyhľadá ID chyby, s ktorou je odovzdanie spojené. Toto je do istej miery náchylné na chyby, pretože sa spolieha na to, že používateľ správu záznamu napíše správne, aby ho skript háku predbežného odovzdania mohol správne analyzovať.
TortoiseSVN môže pomôcť používateľovi dvoma spôsobmi:
Keď užívateľ zadáva správu záznamu, môže sa automaticky pridať presne definovaný riadok vrátane čísla problému súvisiaceho s odovzdaním. To znižuje riziko, že užívateľ zadá číslo problému spôsobom, ktorý nástroje na sledovanie chýb nedokážu správne analyzovať.
Alebo TortoiseSVN môže zvýrazniť časť zadanej správy záznamu, ktorá je rozpoznávaná sledovačom problémov. Užívateľ tak vie, že správu záznamu je možné správne analyzovať.
Keď používateľ prehľadáva správy záznamu, vytvorí TortoiseSVN z každého ID chyby v správe záznamu odkaz, ktorý spustí prehliadač v súvislosti so spomínaným problémom.
V TortoiseSVN si môžete integrovať nástroj na sledovanie chýb podľa svojho výberu. Aby ste to dosiahli, musíte definovať niektoré vlastnosti, ktoré sa musia začínať bugtraq:
. Tie musia byť nastavené v priečinkoch: (“Nastavenia Projektu”)
Pri úprave ktorejkoľvek z vlastností bugtraq sa použije špeciálny editor vlastností, ktorý uľahčí nastavenie vhodných hodnôt.
Existujú dva spôsoby integrácie TortoiseSVN s nástrojmi na sledovanie problémov. Jeden je založený na jednoduchých strunách, druhý je založený na regulárnych výrazoch. Vlastnosti používané oboma prístupmi sú:
Nastavte túto vlastnosť na adresu URL svojho nástroja na sledovanie chýb. Ten musí byť správne kódovaný URI a musí obsahovať %BUGID%
. %BUGID%
sa nahrádza číslom problému, ktoré ste zadali. Toto umožňuje TortoiseSVN zobraziť odkaz v dialógovom okne záznamu, takže keď sa pozeráte do záznamu revízií, môžete prejsť priamo na svoj nástroj na sledovanie chýb. Túto vlastnosť nemusíte poskytovať, ale potom TortoiseSVN zobrazí iba číslo problému a nie odkaz naňho. Napr. projekt TortoiseSVN používa http://issues.tortoisesvn.net/?do=details&id=%BUGID%
.
Môžete tiež použiť relatívne adresy URL namiesto absolútnych. Je to užitočné, keď je váš nástroj na sledovanie problémov na rovnakej doméne/serveri ako zdrojové úložisko. V prípade, že sa názov domény niekedy zmení, nemusíte upravovať vlastnosť bugtraq:url
. Existujú dva spôsoby, ako určiť relatívnu adresu URL:
Ak sa to začína reťazcom ^/
predpokladá sa, že je relatívny ku koreňu úložiska. Napríklad, ^/.. /?do=details&id=%BUGID%
bude riešené na https://tortoisesvn.net/?do=details&id=%BUGID%
ak je vaše úložisko umiestnené na https://tortoisesvn.net/svn/trunk/
.
Pri adrese URL, začínajúcej reťazcom /
sa predpokladá, že je relatívna k názvu hostiteľa servera. Napríklad /?do=details&id=%BUGID%
bude riešené na https://tortoisesvn.net/?do=details&id=%BUGID%
ak je vaše úložisko umiestnené kdekoľvek na https://tortoisesvn.net
.
Nastavte túto hodnotu na true
, ak chcete, aby vás program TortoiseSVN varoval z dôvodu prázdneho textového poľa s číslom problému. Platné hodnoty sú true/false
. Ak nie je definované, predpokladá sa false
.
V jednoduchom prístupe TortoiseSVN ukáže používateľovi samostatné vstupné pole, kde je možné zadať ID chyby. Potom sa k správe záznamu, ktorú zadal užívateľ, sa pridá/doplní samostatný riadok.
Táto vlastnosť aktivuje systém sledovania chýb v režime Vstupné pole. Ak je táto vlastnosť nastavená, potom vás TortoiseSVN po vykonaní zmien vyzve na zadanie čísla problému. Používa sa pridaním riadku na koniec správy záznamu. Musí obsahovať %BUGID%
, ktoré je pri potvrdení nahradené číslom problému. To zaistí, že váš záznam odovzdania obsahuje odkaz na číslo problému, ktorý je vždy v konzistentnom formáte a môže byť analyzovaný vašim nástrojom na sledovanie chýb a priradí číslo problému ku konkrétnemu odovzdaniu. Ako príklad môžete použiť Problém: %BUGID%
, ale to závisí od vášho nástroja.
Tento text zobrazuje TortoiseSVN v dialógovom okne odovzdania, aby označil editačné pole, kde zadáte číslo problému. Ak to nie je nastavené, bude zobrazené Bug-ID / Issue-Nr:
. Nezabúdajte však, že veľkosť okna sa nezmení tak, aby sa zmestil na túto menovku, takže veľkosť štítka udržujte pod 20 - 25 znakmi.
Ak je nastavené na true
v textovom poli číslo problému sú povolené iba čísla. Výnimkou je čiarka, takže môžete oddeliť čiarkou niekoľko čísel. Platné hodnoty sú true/false
. Ak nie je definované, predpokladá sa true
.
Táto vlastnosť definuje, či sa ID chyby pripojí (true) na koniec správy záznamu alebo sa vloží (false) na začiatku správy záznamu. Platné hodnoty sú true/false
. Ak nie je definované, predpokladá sa pravda
, aby sa existujúce projekty neporušili.
V prístupe k regulárnym výrazom, TortoiseSVN nezobrazuje samostatné vstupné pole, ale označuje časť správy záznamu, ktorú zadá užívateľ a ktorá je rozpoznaná nástrojom na sledovanie problémov. Toto sa deje, kým užívateľ píše správu do záznamu. To tiež znamená, že ID chyby môže byť v správe záznamu kdekoľvek! Táto metóda je oveľa flexibilnejšia a používa ju samotný projekt TortoiseSVN.
Táto vlastnosť aktivuje systém sledovania chýb v režime Regulárne výrazy. Obsahuje buď jeden regulárny výraz, alebo dva regulárne výrazy oddelené novým riadkom.
Ak sú nastavené dva výrazy, potom sa prvý výraz použije ako predbežný filter na vyhľadanie výrazov, ktoré obsahujú ID chýb. Druhý výraz potom extrahuje identifikátory prostých chýb z výsledku prvého regulárneho výrazu. To vám umožňuje použiť zoznam ID chýb a výrazov v prirodzenom jazyku, ak chcete. môžete napríklad opraviť niekoľko chýb a zahrnúť reťazec asi takto: “Táto zmena rieši problémy #23, #24 a #25” .
Ak chcete zachytiť ID chýb, ktoré sa používajú vo výraze vyššie, v správe záznamu, môžete použiť nasledujúce reťazce regulárneho výrazu, ktoré používa projekt TortoiseSVN: [Ii]ssues?:?(\s*(,|and)?\s*#\d+)+
a (\d+)
.
Prvý výraz sa vyberie “problémy #23, #24 a #25” z okolitej správy záznamu. Druhý regulárny výraz extrahuje z výstupu prvého regulárneho výrazu obyčajné číslo desiatkovej sústavy, takže sa vráti “23” ,“24” a “25” pre použitie ako ID chyby.
Ak prvý regulárny trochu rozoberieme, musí sa začínať slovom “issue”, prípadne s veľkým začiatočným písmenom. Potom prípadne nasleduje znak “ s” (viac ako jeden problém) a voliteľne dvojbodkou. Potom nasleduje jedna alebo viac skupín, z ktorých každá má nulovú alebo viacero úvodných medzier, voliteľnú čiarku alebo “and” a viac voliteľných medzier. Nakoniec je to povinné “#” a povinné číslo desiatkovej sústavy.
Ak je nastavený iba jeden výraz, musia sa ID prostých chýb zhodovať v skupinách reťazca regulárneho výrazu. Príklad: [Ii]ssue(?:s)? #?(\d+)
. Túto metódu vyžaduje niekoľko nástrojov na sledovanie čísel, napríklad trac, ale je ťažšie vytvoriť regulárny výraz. Túto metódu odporúčame použiť, iba ak vám to vyžaduje dokumentácia na sledovanie problémov.
Ak vám regulárne výrazy nie sú známe, pozrite sa časť v úvode https://en.wikipedia.org/wiki/Regular_expression a online dokumentáciu a návod na stránke http://www.regular-expressions.info/ .
Nie je vždy ľahké správne upraviť regulárny výraz, aby ste si pomohli, do dialógového okna vlastností bugtraq je zabudovaný testovací dialóg. Zobrazíte ju kliknutím na tlačidlo napravo od editačných polí. Tu môžete zadať testovací text a zmeniť každý regulárny výraz, aby ste videli dôsledky. Ak je regulárny výraz neplatný, pozadie textového poľa sa zmení na červenú.
Ak sú obe vlastnosti bugtraq:message
a bugtraq:logregex
nastavené, logregex
má prednosť.
Aj keď nemáte sledovač problémov s hákom predbežného potvrdenia, ktorý analyzuje vaše správy záznamu, stále môžete použiť tento nástroj na premenu problémov uvedených v správach záznamu na odkazy!
A aj keď odkazy nepotrebujete, čísla problémov sa zobrazia ako samostatný stĺpec v dialógovom okne záznamu, čo uľahčuje hľadanie zmien týkajúcich sa konkrétneho problému.
Niektoré vlastnosti tsvn:
vyžadujú hodnotu true/false
. TortoiseSVN tiež rozumie yes
ako synonymu pre true
a no
ako synonymu pre false
.
Aby systém fungoval tieto vlastnosti musia byť nastavené v priečinkoch. Keď odovzdáte súbor alebo priečinok, vlastnosti sa načítajú z tohto priečinka. Ak tam nenájde vlastnosti, TortoiseSVN bude prehľadávať strom priečinkov smerom nahor, až kým nenájde bezverziový priečinok, alebo koreň stromu (napr.C:\
). Ak si môžete byť istí, že každý užívateľ overí iba napr. kmeň/
a nie nejaký podpriečinok, potom stačí, ak nastavíte vlastnosti na priečinok kmeň/
. Ak si nie ste istí, mali by ste vlastnosti nastaviť rekurzívne pre každý podpriečinok. Nastavenie vlastnosti hlbšie v hierarchii projektu prepíše nastavenie na vyšších úrovniach (bližšie k priečinku kmeň/
).
Od verzie 1.8 používajú TortoiseSVN a Subversion takzvané zdedené vlastnosti
, čo znamená, že vlastnosť nastavená v priečinku sa automaticky implicitne nastaví aj vo všetkých podpriečinkoch. Nie je teda potrebné nastavovať vlastnosti všetkých priečinkov, ale iba koreňového priečinka.
Iba pre vlastnosti projektu, t. j. tsvn:
, bugtraq:
a webviewer:
môžete použiť zaškrtávacie políčko Rekurzívne na nastavenie vlastnosti na všetky podpriečinky v hierarchii bez nastavenia všetkých súborov.
Keď do pracovnej kópie pridáte nové podpriečinky pouziťím TortoiseSVN, všetky vlastnosti projektu prítomné v nadradenom priečinku sa automaticky pridajú aj do nového podradeného priečinka.
Pretože integrácia sledovača problémov závisí od prístupu k vlastnostiam Subversion, výsledky uvidíte iba pri použití overenej pracovnej kópie. Načítanie vlastností na diaľku je pomalá operácia, takže túto funkciu neuvidíte v akcii z prehliadača úložiska, pokiaľ ste nespustili prehliadač úložiska z pracovnej kópie. Ak ste spustili prehliadač úložiska zadaním adresy URL úložiska, táto funkcia sa nezobrazí.
Z rovnakého dôvodu sa vlastnosti projektu nebudú šíriť automaticky, keď sa použitím prehliadača úložiska pridá podradený priečinok.
Integrácia nástroja na sledovanie problémov sa neobmedzuje iba na TortoiseSVN; dá sa použiť s akýmkoľvek klientom Subversion. Ďalšie informácie sa nachádzajú v úplnom znení v časti Špecifikácia integrácie sledovača problémov v zdrojovom úložisku TortoiseSVN. V časti (“Licencia” sa vysvetľuje, ako získať prístup do úložiska.)
Predošlá časť sa zaoberá pridávaním informácií o problémoch do správ záznamu. Čo však v prípade, že potrebujete získať informácie zo sledovača problémov? Dialóg odovzdania má rozhranie COM, ktoré umožňuje integráciu externého programu, ktorý vie hovoriť s vaším sledovačom. Spravidla by ste mali chcieť zadať požiadavku do sledovača na získanie zoznamu otvorených problémov, ktoré vám boli pridelené, aby ste si mohli vybrať problémy, ktoré sa pri tomto odovzdaní riešia.
Každé takéto rozhranie je samozrejme veľmi špecifické pre váš systém sledovania problémov, takže nemôžeme poskytnúť túto časť. Popis, ako vytvoriť takýto program, je mimo rozsah tejto príručky. Definíciu rozhrania a ukážkové doplnky v C# a C++/ATL možno získať v priečinku contrib
v úložisku TortoiseSVN. (Časť “Licencia” vysvetľuje, ako získať prístup do úložiska.) Súhrn API je tiež uvedený v časti Kapitola 7, Rozhranie IBugtraqProvider. Ďalším (fungujúcim) príkladom doplnku v C# je aplikácia Gurtle, ktorá implementuje požadované rozhranie COM na interakciu so sledovačom problémov kódu Google.
Pre ilustráciu predpokladajme, že vám správca systému poskytol doplnok na sledovanie problémov, ktorý ste si nainštalovali, a že ste nastavili niektoré zo svojich pracovných kópií tak, aby ste doplnok mohli používať v dialógovom okne nastavení TortoiseSVN. Keď otvoríte dialógové okno odovzdania z pracovnej kópie, ku ktorej bol doplnok priradený, v hornej časti dialógového okna sa zobrazí nové tlačidlo.
V tomto príklade môžete vybrať jeden alebo viac otvorených čísel. Doplnok potom môže generovať špeciálne naformátovaný text, ktorý pridá do vašej správy záznamu.