V oblastech vývoje softwaru je velmi běžné, aby se změny vztahovaly k určitému problému nebo ID chyby. Uživatelé systémů pro sledování chyb (sledování problémů) můžou přiřadit změny provedené v Subversion ke konkrétnímu ID v jejich systému pro sledování problémů. Většina systémů pro sledování problémů proto poskytne hákový skript před odevzdáním, který rozebere zprávu záznamu pro nalezení ID chyby, s nimiž je odevzdání spojené. Je to poněkud náchylné k chybám, neboť závisí na uživateli, aby napsal vhodnou zprávu záznamu tak, že hákový skript ji může správně zpracovat.
TortoiseSVN může pomoci uživateli dvěma způsoby:
Když uživatel zadá zprávu záznamu, dobře formulovaná věta zahrnující číslo problému spojeným s odevzdáním může být přidáno automaticky. Tím se snižuje riziko, že uživatel zadá číslo problému způsobem, který nástroje sledování chyb nemůžou správně rozebrat.
Nebo TortoiseSVN může zvýraznit část zadané zprávy záznamu, které je pak rozpoznám systémem pro sledování problémů. Tímto způsobem uživatel ví, že zpráva záznamu může být správně rozebrána.
Když uživatel prochází zprávy záznamu, TortoiseSVN vytvoří odkaz z každé ID chyby ve zprávě záznamu, který zobrazí prohlížeč s uvedeným problémem.
V TortoiseSVN můžete integrovat nástroj pro sledování chyb podle vašeho výběru. Pro toto musíte nastavit některé vlastnosti, které začínají bugtraq:
. Musí být nastaveny na adresáře: („Nastavení projektu“)
Když upravujete některou z vlastností bugtraq, použije se speciální editor vlastností pro snadnější nastavení příslušných hodnot.
Existují dva způsoby, jak integrovat TortoiseSVN se systémem pro sledování problémů. Jedním z nich je založen na jednoduchých řetězcích, druhý je založen na regulárních výrazech. Vlastnosti používané oběma přístupy jsou:
Nastavte tuto vlastnost na URL Vašeho nástroje pro sledování chyb. Musí být řádně zakódóván URI a musí obsahovat %BUGID%
. %BUGID%
je nahrazeno číslem chyby, které jste zadali. To umožňuje TortoiseSVN zobrazit odkaz v záznamu, takže když se díváte na záznam revizí, můžete skočit přímo do nástroje pro sledování chyb. Tuto vlastnost nemusíte poskytovat, ale pak TortoiseSVN zobrazí pouze číslo chyby bez odkazu na ni. Např. projekt TortoiseSVN používá http://issues.tortoisesvn.net/?do=details&id=%BUGID%
.
Můžete také použít relativní URL místo absolutních. To je užitečné, když Váš systém pro sledování problémů je na stejné doméně/serveru jako zdrojové úložiště. V případě, že se jméno domény změní, nemusíte upravovat vlastnost bugtraq:url
. Existují dva způsoby, jak zadat relativní URL:
If it begins with the string ^/
it is assumed to be relative to the repository root. For example, ^/../?do=details&id=%BUGID%
will resolve to https://tortoisesvn.net/?do=details&id=%BUGID%
if your repository is located on https://tortoisesvn.net/svn/trunk/
.
A URL beginning with the string /
is assumed to be relative to the server's hostname. For example /?do=details&id=%BUGID%
will resolve to https://tortoisesvn.net/?do=details&id=%BUGID%
if your repository is located anywhere on https://tortoisesvn.net
.
Nastavte toto na true
pokud chcete, aby Vás TortoiseSVN varoval kvůli prázdnému textovému poli čísla problému. Platné hodnoty jsou true/false
. Pokud není nastaveno, předpokládá se false
.
Jednoduše, TortoiseSVN ukazuje uživateli samostatné vstupní pole, kde může být zadáno ID chyby. Pak je samostatný řádek připojen na začátek/konec zprávy záznamu, kterou uživatel zadal.
Tato vlastnost aktivuje systém sledování chyb v režimu Vstupního pole. Pokud je tato vlastnost nastavena, potom Vás TortoiseSVN vyzve k zadání čísla problému, při odevzdání změn. Je použita na přidání řádku ke konci zprávy záznamu. Musí obsahovat %BUGID%
, který je při odevzdání nahrazen číslem problému. To zaručuje, že Váš záznam odevzdání obsahuje odkaz na číslo problému, které je vždy v jednotném formátu a může být rozebráno Vaším nástrojem pro sledování chyb pro přiřazení čísla problému s určitým odevzdáním. Jako příklad můžete použít Issue:%BUGID%
, ale to závisí na Vašem nástroji.
Tento text je zobrazen TortoiseSVN v dialogovém okni odevzdání k označení rámečku úprav, kde zadáte číslo problému. Pokud není nastavena, je zobrazeno Bug-ID / Issue-Nr:
. Mějte na paměti, že okno nezmění svoji velikost pro tento štítek, takže udržujte velikost štítku pod 20-25 znaků.
Pokud je nastavena na true
, pouze čísla jsou povolena v textovém poli čísla problému. Výjimkou je čárka, takže můžete oddělit čárkou několik čísel. Platné hodnoty jsou true/false
. Pokud není nastavena, předpokládá se true
.
Tato vlastnost určuje, zda je ID chyby připojeno (true) na konec zprávy záznamu nebo je vloženo (false) na začátek zprávy. Platné hodnoty jsou true/false
. Pokud není nastavena, předpokládá se true
, aby se neporušili stávající projekty.
V přístupu s regulárními výrazy, TortoiseSVN neukazuje samostatné vstupní pole, ale označuje části zprávy záznamu, které uživatel zadá, které je pak rozpoznána systémem pro sledování problémů. Toto se provádí, zatímco uživatel píše zprávu záznamu. To také znamená, že ID chyby může být kdekoliv uvnitř zprávy záznamu! Tato metoda je mnohem flexibilnější a používá se v rámci projektu TortoiseSVN.
Tato vlastnost aktivuje systém pro sledování chyb v režimu Regulárních výrazů. Obsahuje buď jeden regulární výraz, nebo dva regulární výrazy oddělené novým řádkem.
Pokud jsou nastaveny dva výrazy, pak je první výraz používán jako předfiltr pro nalezení výrazů, které obsahují ID chyb. Druhý výraz pak vyjme ID chyby z výsledku prvního regulárního výrazu. To Vám umožní použít seznam ID chyb a výrazů přirozeného jazyka, pokud to tak chcete. Např. můžete opravit několik chyb a zadat řetězec, něco jako: „Tato změna řeší problémy #23, #24 a #25 “.
Pokud chcete odchytávat ID chyb, jako ve výrazu výše uvnitř zprávy záznamu, můžete použít následující řetězec regulárního výrazu, které jsou používané v projektu TortoiseSVN: [Ip]roblemy?:? (\s*(,|and)?\s*#\d+)+
a (\d+)
.
První výraz vybere „problémy #23, #24 a #25“ z okolní zprávy záznamu. Druhý vytáhne prostá desítková čísla z výstupu prvního výrazu, takže vrátí „23“, „24“ a „25“ pro použití jako ID chyby.
Rozebereme si trochu první regulární výraz, musí začínat se slovem „problem“, případně velkými písmeny. Může být následován „y“ (více než jeden problém) a i dvojtečkou. Toto je následované jednou nebo více skupinami, z nichž každá má nulovou nebo více odsazenou mezeru, dobrovolnou čárku nebo volitelně „a“ a další volitelné místo. Nakonec je povinné „#“ a povinné číslo z desítkové soustavy.
Pokud je nastaven pouze jeden výraz, pak se musí prosté ID chyby shodovat ve skupinách řetězce regulárního výrazu. Příklad: [Ip]roblem(?:s)? #?(\d+)
Tato metoda je vyžadována několika systémy pro sledování problémů, např. Trac, ale je těžší sestavit regulární výraz. Doporučujeme tuto metodu používat pouze pokud dokumentace Vašeho systému pro sledování problémů neřekne.
If you are unfamiliar with regular expressions, take a look at the introduction at https://en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://www.regular-expressions.info/.
Není vždy snadné vytvořit správný regulární výraz, takže, abychom Vám pomohli, je dostupné dialogové okno pro vyzkoušení, zabudované do dialogového okna vlastností bugtraq. Klikněte na tlačítko vpravo od polí pro úpravu, aby jste ho zobrazili. Zde můžete zadat nějaký text pro vyzkoušení, a měnit každý regulární výraz pro zobrazení výsledků. Pokud je regulární výraz neplatný, pozadí rámečku pro úpravu změní svoji barvu na červenou.
Pokud obě vlastnosti bugtraq:message
a bugtraq:logregex
jsou nastaveny, logregex
má přednost.
I v případě, že nemáte systém pro sledování problémů s hákovým skriptem před odevzdáním zpracovávajícího zprávy záznamu, stále můžete toto použít pro přetvoření problémů uvedených ve zprávách záznamu do odkazů!
A i když odkazy nepotřebujete, čísla problémů se zobrazují jako samostatné sloupce v dialogovém okně záznamu, takže je snazší najít změny, které se vztahují k určitému problému.
Některé vlastnosti tsvn:
vyžadují hodnotu true/false
. TortoiseSVN také rozumí yes
jako synonymum pro true
a no
jako synonymum pro false
.
Tyto vlastnosti musí být nastaveny na adresáře, aby systém fungoval. Když odevzdáte soubor nebo adresář vlastnosti jsou čteny z tohoto adresáře. Pokud zde vlastnosti nejsou nalezeny, bude TortoiseSVN hledat výše přes adresářový strom dokud nenajde buď adresář bez verze, nebo kořen stromu (např. C:\
). Pokud si jste jisti, že každý uživatel získává pouze např. z kmen/
a ne z nějakého podadresáře, pak stačí, pokud nastavíte vlastnosti v kmen/
. Pokud si být jisti nemůžete, měli byste nastavit vlastnosti rekurzivně na každý podadresář. Nastavení vlastnosti hlouběji v hierarchii projektu přepíše nastavení na vyšší úrovni (blíže k kmen/
).
Od verze 1.8 používají TortoiseSVN a Subversion takzvané zděděné vlastnosti
, tím jsou vlastnosti použité na složku také automaticky nastaveny ve všech podsložkách. Tím odpadá nutnost nastavovat vlastnosti ve všech složkách, stačí je nastavit pouze v kořenové.
Pouze na vlastnosti projektu tj. tsvn:
, bugtraq:
a webviewer:
můžete použít políčko Rekurzivní při nastavení vlastnost pro všechny podadresáře v hierarchii, aniž by byly nastaveny na všechny soubory.
Když přidáte nový podadresář do pracovní kopie pomocí TortoiseSVN, budou veškeré vlastnosti projektu, obsažené v nadřazeném adresáři, také automaticky přidány do nového podřazeného adresáře.
Protože integrace systému pro sledování problémů závisí na přístupu k vlastnostem Subversion, výsledky uvidíte pouze při použití získané pracovní kopie. Získávání vlastností na dálku je pomalá operace, takže tuto funkci neuvidíte v činnosti v průzkumníku úložiště, ledaže byste spustili průzkumníka úložiště z vaší pracovní kopie. Pokud jste spustili průzkumníka úložiště zadáním adresy URL úložiště tuto funkci neuvidíte.
Ze stejného důvodu se vlastnosti projektu nebudou automaticky šířit, když je podřazený adresář přidán pomocí průzkumníka úložiště.
Integrace systému pro sledování problémů není omezena na TortoiseSVN; lze jej použít s jakýmkoli klientem Subversion. Pro více informací, si přečtěte úplné Specifikace Integrace Systému pro Sledování Problémů v úložišti zdrojového kódu TortoiseSVN. („Licence“ vysvětluje, jak získat přístup k úložišti.)
Předchozí část se zabývala přidáním informace do zpráv záznamů. Ale co když potřebujete získat informace ze systému pro sledování problémů? Dialogové okno odevzdání má rozhraní COM, které umožňuje integraci s externím programem, který umí mluvit s Vaším systémem pro sledování problémů. Typicky se budete chtít systému dotázat na seznam otevřených problému přiřazených Vám, takže si můžete vybrat problémy, které se v tomto odevzdání řeší.
Každé takové rozhraní je samozřejmě vysoce specifické pro váš systém sledování problémů, takže tuto část nemůžeme poskytnout a popis vytvoření takového programu je mimo rozsah této příručky. Definice rozhraní a ukázkové zásuvné moduly v C# a C++/ATL lze získat z adresáře contrib
v úložišti TortoiseSVN. („Licence“ vysvětluje, jak získat přístup k úložišti.) Shrnutí API je také uvedeno v 7 – „Rozhraní IBugtraqProvider“. Další (fungující) příklad zásuvného modulu v C# je Gurtle, který implementuje požadované rozhraní COM k interakci s Google Code systémem pro sledování problémů.
Pro ilustraci předpokládejme, že Váš správce systému Vám poskytl zásuvný modul pro systém pro sledování problémů, který jste nainstalovali a že jste nastavili některé Vaše pracovní kopie, aby zásuvný modul používali v dialogovém okně nastavení TortoiseSVN. Při otevření dialogového okna odevzdání z pracovní kopie, které byl zásuvný modul přidělen, zobrazí se nové tlačítko v horní části dialogového okna.
V tomto příkladu si můžete vybrat jeden nebo více otevřených problémů. Zásuvný modul pak může vytvořit speciálně formátovaný text, který se přidává ke zprávě záznamu.