Portál AbcLinuxu, 23. dubna 2024 13:43

Rozhovor: Petr "Pasky" Baudiš

16. 5. 2005 | Leoš Literák
Články - Rozhovor: Petr "Pasky" Baudiš  

Petr spolupracuje s Linusem Torvaldsem na vývoji nástroje git, který nahrazuje BitKeeper v roli systému správy verzí linuxového jádra. Je autorem sady nadstavbových skriptů Cogito poskytujících uživatelsky přívětivé rozhraní pro git.

  1. Leoš Literák: Mohl by ses našim čtenářům představit?

    Petr "Pasky" Baudiš: Mohl. Studuji prvním rokem informatiku na Matematicko-fyzikální fakultě, stále něco programuji a na půl úvazku pracuji jako správce sítě. Dříve jsem spravoval textový webový browser ELinks, patřím mezi sezónní vývojáře OpenTTD, nějaký čas jsem administroval síť poskytovatele IPv6 konektivity XS26 a mám prsty v řadě dalších projektů. Zn.: Rád čtu.

  2. Proč ses rozhodl napsat vlastní verzi Linusových git skriptů?

    Protože jsem napsal něco trochu jiného - vlastní skripty nad Linusovým nástrojem jménem "git". git se mi od začátku zalíbil, již dost dlouho jsem totiž plánoval napsat vlastní pořádný verzovací systém a git vypadal jako něco, co jsem dlouho hledal. Sám o sobě je to však poměrně nízkoúrovňový nástroj a jeho ruční používání je poměrně složité a náročné. Jeden z hlavních smyslů existence Cogita je tedy obstarat nějaké lidsky použitelné uživatelské rozhraní, které se navíc možná bude alespoň trochu podobat něčemu, na co už jste zvyklí (a v tom zbytku bude samozřejmě lepší ;-).

  3. Jak se ti spolupracovalo s Linusem?

    Nemůžu říci, že špatně, ale úplně jednoduché s ním vyjít občas také není. Jde každopádně o člověka, který velmi dobře ví, co chce od nástroje, který vytváří (a jde si tvrdě za tím), a zároveň má mimořádný (i když určitě ne neomylný) technický instinkt. Dokud tedy leží vaše cíle přibližně stejným směrem jako ty Linusovy, nežije se vám vedle něj špatně ;-).

  4. Jakou vidíš budoucnost git skriptů? Myslíš, že se osamostatní jako další SCM nebo zůstanou jednoúčelovým nástrojem pro vývoj kernelu?

    Co se Linuse týče, on git vyvíjel pro kernel, a to je tedy i určující aplikace gitu, podle které je celý zformován. Ten model je ale natolik obecný, že je git velmi dobře použitelný i pro jiné projekty a já Cogito rozhodně neplánuji pouze jako nástroj pro vývoj kernelu. Snažím se ho naopak postupně zobecňovat, a uměl bych si ho představit třeba v projektech typu gcc, i když jsem o tom zatím s nikým z gcc týmu nemluvil a nebál bych se gitu i Cogitu dát ještě chvilku na určité vyzrání - vždyť oba nástroje jsou staré jen několik málo týdnů.

    Samozřejmě není důvod Cogito nepoužívat i pro malé "jednomužné" projekty, případně pro katedrálové projekty v komerčním sektoru - nemusíte sice plně využít možnosti Cogita, možnost distribuovaného vývoje se ale hodí v řadě případů, stejně jako podpora pro mergování rozumnější než v CVS (i když za částí konkurence Cogito stále významně pokulhává).

  5. Zaznamenal jsi nějaké zajímavé reakce ze strany zastánců Free Software? Pro ně byl přece BitKeeper vždy trnem v oku a nyní se konečně dočkali GPL nástroje pro správu zdrojáků kernelu.

    Zaznamenal jsem jen různé reakce typu "vždyť jsme vám to říkali" (což je ostatně pravda ;-)), v podstatě se potvrdily ty černé scénáře (i když ne v těch nejhorších variantách).

    Myslím, že nakonec tato zkušenost bude prospěšná, zejména jako potvrzení faktu, že s komerčními produkty je záhodno manipulovat velmi obezřetně a příliš se jim nesvěřovat - nemusí přitom jít vůbec o technickou stránku a kvalitu implementace (podle toho, co vím, je BitKeeper geniální systém a konkurence se mu teprve v poslední době začíná z velké dáli lopotně přibližovat, a to má před sebou ještě velmi dlouhou cestu).

  6. A co Larry McVoy? Měl nějaké reakce na Cogita?

    Zatím žádné, až mne to trochu překvapilo. (Možná je to jen klid před bouří?) Pokud vím, o Gitu někde řekl, že zatím má zhruba tak 5 % funkcionality BitKeeperu, což může být docela dobře pravda - i když v současnosti už Cogito bude mít asi o něco více. Otázka je, kolik mu oproti BitKeeperu chybí funkcionality potřebné pro každodenní použití - asi stále dost, ale není to tak hrozné.

    Tím nechci říci, že použití BitKeeperu přineslo kernelu jen problémy, právě naopak. Byla to obrovská pomoc a pokrok ve vývojovém modelu jádra a určitě se to podepsalo i na kvalitě kódu a rychlosti hledaní chyb. Když nic jiného, BK ukázal, jak se to dá také dělat, a jak to pak úžasně funguje, a dal tím myslím velmi významnou motivaci konkurenci, kterou si vývojáři mnoha projektů zvykli poměřovat právě s kvalitami BitKeeperu. Nasadila se tím poměrně vysoká laťka, a to je dobře.

    Největším problémem bude udělat pořádné mergování. V tom jsme zatím jen o málo chytřejší než CVS, a nebude jednoduché to nějak radikálně vylepšit. Máme ale nějaké nápady...

  7. Jak se vlastně Cogito liší od CVS? V čem je lepší?

    Cogito je postavené na úplně jiném základě než CVS nebo SVN. Samozřejmě je distribuované, to znamená, že celý systém je navržen naprosto jinak. Pokud v Cogitu uděláte ekvivalent checkoutu, získáte kompletní historii a plnohodnotnou kopii celého repository - můžete pak vše dělat lokálně, včetně commitů apod. a volně mergovat s kýmkoliv jiným, kdo udělal to samé. Vůbec to, jak je udělané větvení, nyní již v Cogitu funguje výrazně lépe než v CVS, i když se zde ještě dají čekat významná vylepšení.

    Ani se asi nemusím zmiňovat o takových v dnešní době samozřejmostech, jako atomické commity - pokud něco commitnete, zvýší se verze celého projektu, nikoliv jen souborů, které jste změnili. To vám umožní snadno prohlížet historii celého projektu, diffy ukazující, co jste v jednom commitu změnili, apod. To umí dokonce i Subversion ;-).

  8. Plánuješ angažovat se ve vývoji kernelu samotného?

    Určitě. Do jisté míry jsem se již angažoval v minulosti, mám v kernelu několik patchů. Kromě nějaké dokumentace a různých dalších drobností jsem přeportoval na 2.6 hostfs (součást User Mode Linuxu) a začal jsem s přepisováním menuconfigu - to bych rád brzy konečně dokončil.

    Jinak mám určité oblíbené oblasti kernelu, ale nic, co by mne vyloženě pálilo. Asi je to spíše do značné míry jako s Gitem - občas si všimnu na LKML něčeho, co mě zaujme, a řeknu si "tohle by mě fakt bavilo dělat". Může to být samozřejmě něco úplně jiného než Linux Kernel, ale kernel je v současnosti asi nejpravděpodobnější. Mám samozřejmě rozdělaných i několik dalších projektů, na kterých chci průběžně pracovat...

Související články

Linus - BitKeeper = riešenie?

Další články z této rubriky

Michal Švec ze SUSE na téma Virtualizace a SLES
Rozhovor s Radkem Špimrem, IBM na téma nových serverů IBM Power Systems LC
Zpověď startupu na vlně IBM
ČVUT jako MIT? Lendl, Navrátilová, Jágr, Sáblíková, nebo absolvent FELu?
Práce vývojáře je dobrodružství

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.