Info Tento blog je v "read-only módu" a nový obsah již nebude přibývat. O vývoji píšu na DevBlog.

Trunk, branch, tag?

Subversion při popisu repository používá tři pojmy: trunk, branch a tag. Typický způsob práce vypadá tak, že ve složce /trunk probíhá hlavní vývoj, do složky /branches se kopírují jednotlivé verze projektu, které jsou v tomto umístění bugfixovány apod., a nakonec složka /tags slouží k ukládání snapshotů vydaných verzí (např. tag /tags/1.0 je přesnou kopií projektu ve verzi 1.0). Návrh repository je samozřejmě zcela v rukou koncového uživatele, ale právě naznačený postup dává dobrý smysl a proto se v drtivé většině projektů používá.

Vždycky mi ale přišlo, že použitá terminologie je trochu „divná“. Angličtina mi nedělá žádný problém, ale musím se přiznat, že slovo „trunk“ jsem slyšel poprvé právě v souvislosti s verzováním. Pohled do slovníku napovídá, že trunk je buď chobot slona, nebo krátké kalhoty, nebo plavky, nebo mlýnský žlab, ale naštěstí i kmen stromu.

A co takové slovo „tag“? Pro mě to byla velmi abstraktní záležitost, např. v HTML dokumentu tag znamená věc, která nějakým způsobem označuje část textu. Když jsem si přečetl, že vedle závěrečného proslovu a hry na babu se může jednat i o visačku, všechno mi došlo, ale až ex post.

Myslím, že na slova „trunk“ a „tag“ při první setkání s otevřenou pusou kouká většina neanglicky mluvících lidí (a možná i těch, pro které je angličtina rodným jazykem). Jsou podle mě totiž špatně zvolená – je problém s jejich překladem a i pak není zcela jasné, co vlastně znamenají. Pokud někdo CVS používá roky, je pro něj tato terminologie přirozená, ale člověk si zvykne na všechno :)

Kdybych měl terminologii vymýšlet já, asi bych zvolil jména „devel“, „branches“ a „releases“. Je však potřeba myslet i na to, že ne všichni uživatelé Subversion jsou programátoři a repository tak může sloužit třeba při psaní nové knihy. Zde by navrhnutá terminologie nebyla vhodná a proto bych se asi nakonec přiklonil ke slovům „main“, „branches“ a „snapshots“. Ty jsou snadno přeložitelné, pochopitelné a docela dobře popisují význam jednotlivých složek.

Je mi jasné, že teď už se nic nezmění. Původní terminologie je hluboce zažitá a osobně s ní teď už nemám žádný problém. Nic to ale nemění na mém názoru, že autoři mohli vybrat podstatně lepší slova. Na použitelnost je potřeba myslet nejen při webdesingu…

Zařazeno do kategorií |
thingwath (Pá, 2006-02-03 19:12):

Main, no, to má třeba GNU Arch. Ale ty zrůdy v jeho podání, to je dílo :-)

Bochi (So, 2006-02-04 21:59):

Ano, mohli by používat možná jednoznačnější a technokratičtější pojmenování jako třeba trojkombinace „devel, branches, releases“, kterou uvádíte. Mně ale to „trunk, branch, tag“ připadá v kontextu daného oboru docela poetické, stačí se jen trochu abstrahovat od doslovných významů. Představte si celý vývojový proces jako strom a přeložte si to do češtiny trochu volně jako „kmen-větve-listy“ a jste doma ;-).

Borek (So, 2006-02-04 22:33):

Ano, tato poetika je hezká, ačkoliv mé vnímání pojmu „tag“ bych spíš popsal jako „podobný strom osekaný tak, že z něj zbyla pouze jediná větev, která je zapíchnutá do země někde opodál“ :) Pro mě je prostě tag snímkem celého stromu v určitém časovém okamžiku, ačkoliv ta představa moc poetická není :)

Ale buď jak buď, současná terminologie, jakkoliv poetická, je pro začátečníky celkem špatně srozumitelná. Mně se dokonce stalo to, že jsem před rokem Subversion vesele používal, ale teďka jsem se stejně musel terminologii znovu učit, abych si byl zcela jistý tím, co se ukládá do /tags apod. To už o něčem svědčí (možná o mé demenci :)

Komentáře jsou uzavřeny (blog je v read-only módu). Pokud mě chcete kontaktovat, můžete mailem.