K produktu firmy Merant jsem se dostal v podstatě náhodou. Po uveřejnění recenze na Visual SourceSafe (VSS) firmy Microsoft v dubnových Softwarových novinách, kde jsem uvedl domněnku ohledně ostatních produktů zabývajícími se verzováním, ozvala se mi společnost AIT s tím, že se mohu podívat produkt, jehož recenzi vám nyní nabízíme.
Již při příchodu do firmy jsem poznal, že půjde o něco více, než
„pouhé“ předání produktu. Běžný postup je takový, že se produkt
dodá do redakce nebo si jej recenzent vyzvedne. V tomto případě mě pozvali
dál, nabídli mi občerstvení a byl mi představen nejen celý produkt, ale
i ostatní související nástroje a další informace týkající se jednak
norem na konfigurační řízení a jednak teorií této oblasti.
Instalace
Po příchodu domů jsem produkt začal ihned instalovat. Při vložení CD
do mechaniky neočekávejte spuštění vlastního procesu instalace (což
nepovažuji za šťastné řešení), ale naběhne internetový prohlížeč a
vy máte možnost procházet se informacemi o produktu. Vlastní instalaci,
která je naprosto bezproblémová, je nutno provést právě z těchto
stránek.
Ještě než začneme
Nejprve je potřeba produkt jako takový představit. PVCS Version Manager
(dále jen VM) není pouze nástroj, který vám umožňuje spravovat verze
projektů, ale je součástí velké rodiny nástrojů, která dokáže pokrýt
veškeré vaše potřeby týkající se nejen správy verzí, ale současně
zajistit zadávání požadavků na jednotlivé projekty či jejich části
(konfigurační položky), dokáže generovat různé výstupy a mnoho dalších
činností, které probíhají v rámci správy projektů a verzí.
Začínáme
Pokud jste se tedy rozhodli nasadit tento nástroj, pak je kromě jiného
zapotřebí ještě jedna věc. Jistě již máte pár programů napsaných,
k tomu dokumentaci, manuály a spoustu dalších souborů. Proto je potřeba
vše, co hodláte verzovat, očistit od zbytečného „smetí“ jako jsou
například pomocné soubory, které si vytváří různé nástroje, a pak
určit, co vše se stane konfigurační položkou. Teprve pak přichází na
řadu VM. Nejprve je zapotřebí vytvořit tzv. projektovou databázi, do které
se budou jednotlivé položky vkládat. Kromě jiného určujete cestu na disku,
kam se budou ukládat jednotlivé verze, pracovní adresář vašich projektů a
další. Po vytvoření přichází na řadu vložení připravených
konfiguračních položek do databáze. Kromě souborové masky je zapotřebí
napsat komentář k přidávaným položkám. Dále lze zvolit, co se s nimi
po vložení stane. Zda zůstanou uzamčené nebo budou smazány (a zůstanou
pouze v databázi) nebo je VM označí pouze pro čtení. Na závěr dostanete
seznam všech načtených položek a výsledek, s jakým byly do databáze
vloženy. Tento seznam lze filtrovat: zobrazit vše, pouze varování, pouze
chyby nebo bezproblémové položky – pěkné a přehledné.
Verzujeme
Nyní máme vše na svém místě a na řadu přichází rutinní práce.
Když přijdete ráno na pracoviště, tak kromě kávy, koláčků a
čerstvých novin je zapotřebí ještě vyzvednout si (check out) aktuální
soubory z databáze, které budete potřebovat. Rituál při odchodu z práce
se zase prodlouží o navrácení (check in) souborů zpět.
Běžně se v praxi stává, že je zapotřebí mít k disposici několik
verzí (například poslední release a testovací verzi pro release nový). Je
samozřejmé, že v takových případech je nutné mít u daných verzí tzv.
verzovací návěští (version label). Pak není problém si stáhnout verzi
k tomuto návěští. Tohle ale umí již zmiňovaný VSS také, ovšem co jsem
u něj postrádal, byla možnost stahování verze celých projektů
k určitému datu. To ale není problém pro VM, který umí získat soubory
(nebo konfigurační položky, chcete-li) jednak mladší a jednak starší než
je zadaný datum (viz obrázek).
Další prováděnou akcí je porovnávání změn revizí stejné
konfigurační položky (nebo změn revize vůči aktuálnímu souboru na
disku). V tomto případě je jasné, že jde pouze o textové soubory,
protože v binární podobě čehokoliv se bez dalších informací program
pochopitelně nevyzná. Při porovnávání lze vidět změny, které byly
provedeny: smazání, přidání či změna jednotlivých řádek. Kromě
uvedeného si můžete nechat zobrazit číslování řádek, předchůdce
a/nebo následníka ve verzovací řadě.
Poslední běžnou operací v normálním životě vývojáře je
sledování historie konfiguračních položek. Tato historie se generuje
v HTML podobě, takže k jejímu prohlížení je zapotřebí mít po ruce
další nástroj. Je pravda, že Internet Explorer je již součástí
stávajících verzí Windows, přesto existují počítače, kde internetový
prohlížeč není a spoléhání na nástroje ostatních stran se mi moc
nelíbí (což vlastně platí i pro instalaci).
Jedna věc, která mi u VSS extrémně chybí je rozšířená správa
uživatelů a jejich práv. VM je v tomto ohledu velice rozumně navržený.
Volitelně lze totiž využít bezpečnostní přístup do databáze, takže jej
musíte konfigurovat pouze v případě, že je zapotřebí. Jinak je skrytý a
neobtěžuje vás. Základem je nadefinovat si jednotlivé uživatele, kteří
budou mít k databázi přístup a pak je přiřadit do nějaké skupiny
uživatelů (například superuživatel, vývojář, dokumentarista a další).
Příjemné je na tom možnost doladit jednotlivá práva podle potřeby. Tak se
může stát, že například uživatel náleží skupině kvalitářů, ale
nebude moci jednotlivé konfigurační položky mazat. Pokud se stane, že se do
týmu dostane například brigádník, je možné určit, jak dlouho bude jeho
účet platný. Podobně jako uživatele lze definovat skupiny a jejich
omezení. Může se zdát, že k dokonalosti vlastně chybí jediná věc –
neomezovat přístupy pouze na celou databázi, ale na jednotlivé projekty. Ale
i zde vychází VM vstříc a lze stejným způsobem udělovat práva i na
jednotlivé projekty.
Další vlastnosti
Integrace VM do vývojových produktů je samozřejmostí (např. v Delphi
4 byl součástí instalace, pak se bohužel (alespoň pro mne) firma
přeorientovala na nástroje Microsoftu). Zde však nejde o nedostatek ze
strany Merantu, ale vinu nese víceméně Borland, který přišel s vlastním
nástrojem (viz zmínka v recenzi na Delphi 5 v SWN 12/99), který sice
s PVCS VM dokáže spolupracovat, ale integrace do prostředí chybí.
Další vlastnost mě velmi příjemně překvapila, protože bych ji spíše
hledal v databázové světě. Jedná se o triggry, neboli spouštěcí
mechanismus při nějaké události. V tomto případě máte na výběr
spoustu akcí (check in/out, nastavení labelu, …), ke kterým přiřadíte
potřebnou činnost.
Mnou neoblíbený paralelní vývoj je samozřejmostí stejně jako možnost
nepoužívat grafické prostředí a vše dělat pomocí
příkazové řádky.
Pokud si myslíte, že zde výčet vlastností končí, jste na omylu.
Jestliže to s konfiguračním řízením (Configuration Management, CM)
myslíte vy či vaše firma vážně, pak by vám VM nemusel stačit. Proto na
scénu přicházejí další pomocníci, kteří vám výrazně pomohou chovat
se podle příslušných norem CM. PVCS Tracker podporuje procesy řízení jako
je zadávání požadavků na konfigurační položky, evidence chyb či
změnových požadavků. Pokud pracujete na síti (ať Internetu či Intranetu),
bude zapotřebí tyto požadavky či hlášení rozesílat konkrétním osobám,
které za danou oblast zodpovídají. K tomu slouží PVCS Notify případně
PVCS VM I-Net a PVCS Tracker I-Net (potřebné odkazy jsou uvedeny níže).
Jak se s PVCS VM pracuje?
Když jsem si začal s VM hrát, velmi mě zaráželo, že po každé
operaci – bez ohledu na to, zda byla provedena v pořádků či nikoliv –
na mě vyskočilo okno s informací o výsledku. To může začít po delší
době rozčilovat i sebevětšího flegmatika. Naštěstí pomůže jedno
zaškrtnutí v nastavovacím dialogu a je po problémech.
Verze, kterou jsem měl k dispozici, sice nebyla certifikovaná pro Windows
2000, ale i přesto na nich běžela jako zajíc před liškou bez
sebemenšího zaškobrtnutí. Nevím, zda Microsoft hodně straší, nebo
většina aplikací je tak dobře napsána (a přeložena), že jim nějaké
Windows 2000 nevadí. Sice jsem se setkal s aplikacemi, které na jiných
Windows byly v pohodě a W2k jim pod fousy nešly, ale byly to výjimky.
Uživatelské prostředí je příjemné a pokud přeci jenom tápete, jsou tu
jednak dobře napsané manuály nebo ještě lepší nápověda.
Tak si to zrekapitulujeme
Podobně jako s VSS, neměl jsem s VM sebemenší problémy, byť jsem
používal oficiálně nepodporovaný OS (v současné době již existuje
release, který Windows 2000 plně podporuje). Prostředí je příjemné a
intuitivní. Společně s ostatními nástroji společnosti Merant naprosto
spolehlivě pokrývá požadavky normy ISO 9000–3 na konfigurační řízení.
Kromě Windows 9×, NT4 (SP3) či 2000 jsou podporovány další platformy jako
je Linux, Solaris, AIX či HP-UX.
Spolupráce s firmou, která v naší republice produkt dodává, je
naprosto bezproblémová, v případě problému rychle a kvalitně poradila a
zájem na recenzi z její strany byl enormní. Myslím si, že udělení ceny
Produkt měsíce je na místě.
Text do rámečku 1
Pod pojmem verze si lze představit několik věcí. Běžný
uživatel chápe verzi jako číslo, pod kterým byl produkt uvolněn na trh
(též označováno jako release version). Vývojář si pod pojmem
verze může představit interní verzi produktu (například každý týden
může být nová verze uvolněna k testování) stejně tak ale může
označit číslo revize dané konfigurační položky. Je proto důležité
z kontextu poznat, o kterou verzi jde.
Text do rámečku 2
V textu se oháním konfigurační položkou (configuration item,
CI). Co to je? Jedná se o libovolnou část vývojového prostředí
a/nebo dodávky, která musí být samostatně identifikována, uchovávána,
testována, prověřována, používána, měněna, dodávána a udržována.
Jednotlivé položky se mohou navzájem výrazně lišit co do složitosti a
mohou obsahovat jiné položky v rámci konfigurační hierarchie. Pokud
nevíte, zda lze něco za konfigurační položku označit, stačí se optat,
zda-li by ovlivnilo naši schopnost dodat produkt v pořádku,
včas a bez dodatečných nákladů, kdyby se tato věc
(soubor, HW, dokument, …) ztratila, byla špatně použita, poškodila nebo
byla použita v nesprávné verzi. Odpovíte-li kladně, jedná se
o konfigurační položku.
Obrázky
Klady
- stahování k datu
- práva na jednotlivé databáze a projekty
- triggry
- výborná rozšiřitelnost
Zápory
- poněkud krkolomnější začátek instalace
- nutný prohlížeč HTML
Závěr
Kvalitní produkt s možností rozšiřitelnosti. Udělen Produkt
měsíce.
Ostatní informace
- Dodavatel
- AIT, s.r.o.
- Sinkulova 83
- 140 00 PRAHA 4
- tel: +420 2 61225072
- fax: +420 2 61225081
- e-mail: office@ait.cz
- http://www.ait.cz
- Výrobce
- MERANT
- 9420 Key West Avenue
- Rockville, MD 20850
- USA
- Telephone: (800) 582 1600 or (301) 838 5000
- Fax: (301) 838 5432
Odkazy
Tento článek byl napsán pro časopis Softwarové noviny 12/2000.
Upozornění: tento text neprošel redakční úpravou, takže je
tak, jak byl napsán včetně případných chyb. Žádná část tohoto
článku nesmí být použita bez předchozího souhlasu autora.
Seznam mých dalších článků je v tomto přehledu.