Integrace se Systémy pro Sledování Chyb/Problémů

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:

  1. 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.

  2. 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.

Přidání Čísel Problémů do zpráv záznamu

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“)

Obrázek 4.70. Dialogové Okno Vlastností Bugtraq

Dialogové Okno Vlastností Bugtraq


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:

bugtraq:url

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:

Pokud začíná řetězcem ^/ předpokládá se, že je vzhledem ke kořeni úložiště. Například, ^/../?do=details&id =%BUGID% bude bráno jako http://tortoisesvn.net/?do=details&id=%BUGID% Pokud se Vaše úložiště nachází na http://tortoisesvn.net/svn/trunk/.

U URL začínající řetězcem / se předpokládá, že je vzhledem ke jménu hostitelského serveru. Například /?do=details&id =%BUGID% je bráno jako http://tortoisesvn.net/?do=details&id=%BUGID% Pokud se Vaše úložiště nachází kdekoliv na http://tortoisesvn.net.

bugtraq:warnifnoissue

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.

Číslo Problému v Textovém Poli

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.

bugtraq:message

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.

bugtraq:label

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ů.

bugtraq:number

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.

bugtraq:append

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.

Čísla Problému Pomoci Regulárních Výrazů

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.

bugtraq:logregex

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.

Tip

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.

Nastavení Vlastností Adresáře

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.

Žádné Informace z systému pro sledování problémů v Průzkumníku Úložiště

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.)

Získávání informací od Systému pro Sledování Problémů

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.

Obrázek 4.71. Ukázka dialogového okna dotazu na systém pro sledování problémů

Ukázka dialogového okna dotazu na systém pro sledování problémů


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.