Интеграција са Баг Праћења Систем / Проблем Трагачи

Веома је често у Развоју Софтвера за измене да имају специфичне багове или проблем ИД. Корисници баг трагач система (проблем трагач) су волели да придруже измене које су направили у Субверзији са специфичним ИД у њиховом проблем трагачу. Већина проблем трагача због тога омогућавају пре-урезивања закачиве скрипте које анализирају дневник поруке да нађу баг ИД са којим је урезивање повезано. Ово је понекад склоно грешкама одкад је потребно да корисник упише дневник поруку исправно тако да преурезивања закачив скрипт може га анализирати коректно.

ТортоисеСВН може помоћи кориснику на два начина:

  1. Када корисник унесе дневник поруке, добро дефинисана линија укључује проблем број придружен са урезивањем може бити додат аутоматски. Ово умањује ризик када корисник уноси проблем број на начин да алат баг трагача не може анализирати коректно.

    Или ТортоисеСВН може осветлити део целог дневник поруке који је препознао проблем трагач. На тај начин корисник зна да дневник поруке оже бити анализиран коректно.

  2. Када корисник претражује дневник поруке, ТортоисеСВН креира везу за сваки баг ИД у дневник порука која покреће претраживач до наговештеног проблема.

Додавање Проблем Бројева у Дневник Порука

Можете интегрисати алат праћења багова по вашем избору у ТортоисеСВН. Да то урадите, имате да дефинишете неке особине, што се покреће са bugtraq:. То мора бити подешено на Именицима: (одељак под именом „Подешавање пројекта“)

Слика 4.69. Дијалог багтрек особина

Дијалог багтрек особина


Када уређујете багтрек особине специјални уређивач се користи да олакша подешавање одговарајућих вредности.

Постоји два начина да се интегрише ТортоисеСВН са проблем трагачем. Једна је заснована на једноставним стринговима, друга се базира на регуларним изразима. Особине коришћене са оба приступа су:

bugtraq:url

Поставите ову особину на УРЛ вашег алата за праћење багова. То мора бити одговарајуће кодиран УРИ и мора садржати %BUGID%. %BUGID% је замењен са Проблем бројем који сте унели. Ово омогућава ТортоисеСВН да прикаже везу у дневник дијалогу, тако да кад гледате ревизиони дневник можете само скочити директно на ваш алат за праћење багова. Не морате да омогућите ову особину али тада ТортоисеСВН приказује само проблем број а не везу до њега, тј. ТортоисеСВН пројекат користи http://issues.tortoisesvn.net/?do=details&id=%BUGID%.

Можете такође користити релативи УРЛ уместо апсолутног. Ово је корисно када ваш проблем трагач је на истом домен/серверу као и изворно спремиште. У случају да се име домена икада промени, немате да подешавате bugtraq:url особину. Постоје два начина да се специфицира релативни УРЛ:

Ако почиње са стрингом ^/ узима се да је релативан на корен спремишта. На пример, ^/../?do=details&id=%BUGID% се решава у http://tortoisesvn.net/?do=details&id=%BUGID% ако је ваше спремиште лоцирано на http://tortoisesvn.net/svn/trunk/.

УРЛ који почиње стрингом / се узима да је релативно на серверово имедомаћина. На пример /?do=details&id=%BUGID% ће се решити у http://tortoisesvn.net/?do=details&id=%BUGID% ако је ваше спремиште лоцирано бил где на http://tortoisesvn.net.

bugtraq:warnifnoissue

Подесите ово на истина, ако желите да вас ТортоисеСВН обавештава о празном проблем-број текст пољу. Исправне вредности су истина/лаж. Ако није дефинисан, лажсе претпоставља.

Издавање бројева у текст боксу

У једноставном приступу, ТортоисеСВН приказује кориснику издвојена улазна поља где баг ИД може бити унет. Затим су издвојене линије додате/убачене у дневник поруке коју је унео крисник.

bugtraq:message

Ова особина активира систем праћења багова у Улазно поље моду. Ако је ова особина подешена тада ТортоисеСВН ће вас питати да унесете проблем број када урезујете своје измене. То се користи да се додају линије на крај дневник поруке. Мора садржати %BUGID%, који је замењен са проблем бројем при урезивању. Ово обезбеђује да ваш дневник урезивања садржи референцу на проблем број који је увек конзистентном формату и може се анализирати вашим алатом за праћење багова да се придружи проблем број са посебним урезивањем. Као један пример можете узети Issue : %BUGID%, али ово зависи од вашег Алата.

bugtraq:label

Овај текст је приказан помоћу ТортоисеСВН у дијалогу урезивања да означи бокс уређивања где уносите проблем број. Ако није подешен, Bug-ID / Issue-Nr: ће бити приказан. Запамтите то да тај прозор не може променити величину да обухвати ову ознаку, па нека је величина ове ознаке испод 20-25 карактера.

bugtraq:number

Ако подесите истина само бројеви су дозвољени у проблем-број текст пољу. Изузетак је зарез, зако да можете запетом издвојити више бројева. Исправне вредности су истина/лаж. Ако није дефинисана, истина се узима.

bugtraq:append

Ова особина дефинише да ли је баг-ИД додат (истина) на крај дневник поруке или убачен (лаж) на почетак дневник поруке. Исправне вредности су истина/лаж. Ако није дефинисана, истина се подразумева, тако да постојећи пројекат не пукне.

Издавање бројева користећи регуларне изразе

У приступу са регуларним изразима, ТортоисеСВН не приказује издвојена улазна поља али маркира део дневник поруку коју корисник унесе што је препознато од проблем трагача. Ово је датодок корисник пише дневник поруку. Ово такође значи да баг ИД може бити било где унутар дневника поруке! Овај метод је много више флексибилан, и један је од оних које пројекат ТортоисеСВН користи сам.

bugtraq:logregex

Ова особина активира систем праћења багова у Регекс моду. Садржи или поденични регуларни израз, или два регуларна израза раздвојена новимредом.

Ако су два израза подешена, тада је први израз коришћен као пре-филтер да нађе изразе који садрже баг ИД. Други израз затим издваја голе баг ИД из резултата прве регекс. Ово дозвољава да се користи листа баг ИД и природан језик израза ако желите нпр. можете фиксирати неколико багова и укључити стринг нешто као ово: Ова измена решава проблеме #23, #24 и #25.

Ако хоћете да ухватите баг ИД како су коришћени у горњем изразу унутар дневник поруке, можете користити следеће регекс стрингове, који су једни од коришћених у ТортоисеСВН пројекту: [Ii]ssues?:?(\s*(,|and)?\s*#\d+)+ and (\d+).

Први израз извлачи issues #23, #24 and #25 из окружења дневник поруке. Други регекс екстрахује пуне децималне бројеве из излаза прве регекс, тако да ће то вратити 23, 24 и 25 да се користи као баг ИД.

Мала грешка код прве регекс, мора се почети речју проблем, могуће са великим словима. Ово је опционално праћено са једним s (више од једног проблема) и опционално тачком и зарезом. Ово је праћено једним или више групе сваки има нула или више водећих белина, опционална запета или и и више опционалних размака. На крају постоји обавезан # и обавезан децимални број.

Ако је само један израз подешен онда го баг ИД мора бити ухваћен у групама регекс стрингова. Пример: [Ii]ssue(?:s)? #?(\d+) Овај метод тражи више проблем трагача, нпр. трац, али то је теже конструисати регекс. Препоручујемо да само користите овај метод ако документација вашег проблем трагача то каже.

Ако нисте фамилијарни са регекс изразима погледајте у увод на http://en.wikipedia.org/wiki/Regular_expression, и онлајн документацију и туторијал на http://www.regular-expressions.info/.

Није увек лако добити регекс исправно да би вам се помогло постоји тест дијалог у дијалогу багтрек особина. Кликните дугме десно од бокса уређења да га дозовете. Овде можете унети неки тест текст и изменити сваки регекс да видите резултате. Ако је регекс неисправан позадина се мења у црвено.

Ако оба bugtraq:message и bugtraq:logregex особине сетованр, logregex има предност.

Савет

Чак и ако немате проблем трагач са пре-урезивање закачаљка анализира ваш дневник порука, ви још увек можете користити ово да окренете проблем замишљен у вашем дневнику порука у вези!

И чак ако вам не треба веза, проблем бројеви приказују као издвојена колона у дневник дијалогу, чинећи то лакшим да нађете што се односи на посебан проблем.

Неке tsvn: особине захтевају true/false вредности. ТортоисеСВН такође разуме yes као синоним за true и no као синоним за false.

Подешавабје особина фолдера

Ове особине морају бити подешене на фолдеру за систем који ради. Када урезујете фајл или фолдер особине су прочитане из фолдера. Ако особине нису нађене тамо, ТортоисеСВН ће претраживати нагоре кроз стабло фолдера да га нађете док не дође неверзионисани фолдер, или корен стабла (нпр. C:\) нађен. Ако можете бити сигурни да сваки корисник преузима само са нпр. trunk/ а не неке суб-фолдере, затим то је довољно ако подесите особине на trunk/. Ако не можете бити сигурни, морате подесити особине рекурзивно на сваком суб-фолдеру. Особине подешене дубље у хијерархији пројекта која преписује подешавање на вишим нивоима (ближе ка trunk/).

Од верзије 1.8 ТортоисеСВН и Субверзија користе такозване iнаслеђене особине, што значи особине које су подешене у фолдеру аутоматски такође имплицитно подешене у свим подфолдерима. Тако није потребно подесити особине у свим фолдерима било где осим у кореном фолдеру.

За особине пројекта само, тј tsvn:, bugtraq: и webviewer: можете користити Рекурзив чекбокс да подесите особине свих суб-фолдера у хијерархији, такође без подешавања на све фајлове.

Када додате нови суб-фолдер у радну копију користећи ТортоисеСВН, особине било ког пројекта присутне у предачком фолдеру ће аутоматски бити такође додате новом потомачком фолдери.

Нема Проблем Трагач Информације из Претраживача Спремишта

Пошто интеграција проблем трагача зависи од приступа Субверзијиним особинама можете видети резултате само коришћењем преузете радне копије. Налажењем особина даљински је спора операција тако да нећете видети ове особине на делу из репо претраживачаосим ако не започнете репо претраживач из ваше радне копије. Ако покренете репо претраживач уношењем УРЛ спремишта нећете видети ове особине.

Из неких разлога особине пројекта неће се преносити аутоматски када се потомачки фолдер дода коришћењем репо претраживача.

Овај проблем трагач интегратор није ограничен на ТортоисеСВН; може се користити са било којим Субверзиооним клијентом. За више информација прочитајте везу Issue Tracker Integration Specification у ТортоисеСВН изворном спремишту. (одељак под именом „Лиценце“ објашњава како приступити спремишту.)

Добијање информација од поблем трагача

Претходни параграф разматра додавање проблем информација у дневник порука. Али шта ако вам треба да добијете информацију од проблем трагача? Дијалог урезивања има ЦОМ интерфејс који дозвољава интеграцију спољашњих програма који могу говорити вашем трагачу. Типично можете желети да тражите трагачу да да листу отворених проблема придружених вама, тако да можете одабрати проблем који ће бити адресиран при урезивању.

Сваки такав интерфејс је, свакако високо специфичан за ваш проблем трагач систем, тако ми не можемо обезбедити овај део и описујући како креирати такав програм је ван видокруга овог мануала. Дефиниција интерфејса и плагин у Ц# Ц++/АТЛ може бити добијено из contrib фолдера у TortoiseSVN repository. (одељак под именом „Лиценце“ објашњава како приступити спремишту.) Укупност АПИ такође је дат у Поглавље 7, ИБагтрагачСнабдевач интерфејс. Други (радни) пример плагин у Ц# је Gurtle који примењује потребан ЦОМ интерфејс да интерагује са Google Code проблем трагачем.

У илустративне сврхе, претпоставимо да је ваш ситем администратор обезбедио проблем трагач језичак који сте инсталирали, и да сте подесили неке ваше радне копије да користе језичак у ТортоисеСВН дијалогу подешавања. Када отворите дијалог урезивање из радне копије на коју је асоциран језичак можете видети ново дугме на врху дијалога.

Слика 4.70. Пример дијалога захтева проблем трагача

Пример дијалога захтева проблем трагача


У овом примеру можете изабрати један или више отворених проблема. Језичак можете генерисати специјално форматирани текст који сте додали вашем дневнику порке.