Domů > scm > Proč jsem přešel z Mercurial na Git

Proč jsem přešel z Mercurial na Git

Verzovací systémy už používám asi 5 let, vystřídal jsem CVS, Subversion, Mercurial, Bazaar a Git. V nedávné době v souvislosti také s tím, že Nette přešlo na Git a vůbec se spousta open source projektů přesunula na Github.com jsem také přešel na distribuovaný systém.

V práci používám Subversion a také přispívám do několika projektů, které pracují na Subversion. Dělal jsem migrace z CVS na SVN ve firmě, kde pracuji apod. Subversion má jednu velkou výhodu, kterou nemají distribuované systémy a to velmi dobré a detailní ACL a různé metody autentizace (LDAP, Active Directory). To si myslím udrží ve spoustě firem Subversion ještě po dlouhou dobu.

Ale protože pracuju na linuxu, pro verzování lokálních projektů a pracovních skriptů apod. používám Git, dříve Mercurial.

Proč jsem nejdříve zvolil Mercurial?

  1. Bitbucket, jednoduchý, přehledný, rychlý a privatní repository v free variantě (proti Github.com)
  2. Jednoduší přechod z SVN (viz Přechod od Subversion k Mercurial)

Proč jsem přešel na Git ?

  1. Karel Minařík mě přesvědčil o výhodách Gitu a odpovídal mě na dotazy, které jsem měl a předvedl mi killer feature (git-filter-branch).
  2. Mercurial mi při práci na projektu vyhodil tuto zprávu „files over 10MB may cause memory and performance problems“.
  3. Zvykl jsem si na syntax Gitu, udělal jsem si hromadu aliasů a to chce prostě trochu čas.

Proč mi vadí to upozornění na přidání souboru většího než 10MB? Protože, pokud to tam mají určitě vědí proč. Performance je Gitu velká výhoda a já od verzovacího systému chci hlavně jednu věc a to verzovat cokoliv.

V současnosti používám Subversion, Mercurial i Git současně a nijak mi to nevadí. Git, ale preferuju pro nové projekty. Stávající ponechám tam kde jsou případně pořeším co udělám s těmi nepodporovanými keywords v Gitu, ale stejně mi nepřijdou v poslední době důležité, protože stejně jsou v každém souboru jiné a nenese to tu informaci, kterou většina chce a to je verze revize z SVN. Tohle spíše je lepší přesunout do build scriptu nebo na deployment.

Doufám, že jsem Borkovi Bernardovi odpověděl na co chtěl, případné dotazy do komenářů.

Categories: scm Tags: ,
  • abtris
    Pro zájemce o Git doporučuji knihu Pro Git v češtině.
  • Neříkám "větší", ale všechny weby Internet Infa (Lupa, Root, Zdrojak, Slunecnice atp.) jsou vyvíjeny za použití Mercurialu.
  • abtris
    Já používám souběžně Subversion, Mercurial, Bazaar i Git současně.

    Ale myslím, že je to také o tom co používají spolupracovníci a jiní kolem vás. Na konferencích, na internetu obecně se nejvíce mluví o Gitu a ten je teď main stream v open source. Tak to aspoň vnímám já.

    O tom to je a myslím, že pokročilé funkce má Git řešené velmi elegantně v ostatních to chce pluginy apod. a měl jsem problém na spoustu věcí přijít nebo to neumožňují (git-filter-branch, rebase).

    Taky mě přesvědčilo, že třeba Centrum.cz používá také Git. Ví někdo o větším nasazení Mercurialu v čechách, kromě Netbeans ;-)
  • Můj komentář asi spadl někam do spamu (jako obvykle :)), tak počkám, jestli ho Láďa nevyloví, a pak to kdyžtak napíšu znovu.
  • @David Majda
    Informaci o 10MB jsem nepřevzal slepě a dělal si o ní krátký průzkum. Lidé se ale bohužel s tímto omezením skutečně potýkají a ani oficiální stránka: http://mercurial.selenic.com/wiki/HandlingLarge... rozhodně nepovzbudí. I laicky: pokud má systém potřebu varovat už u 10MB souboru, což je nic, patrně v něm nebude něco v pořádku.

    Hg se mi líbí o hodně víc než git, ale kvůli tomuhle si přechod ještě pořádně rozmyslím.
  • @Borek Nejsem si jistý, jestli jsi to s tou hláškou < 10MB dobře pochopil - jedná se o *upozornění*, nikoliv o *chybu*. Osobně jsem toto upozornění nikdy neviděl (nezkoumal jsem přesně, kdy se vypisuje) a v Mercurialu rutinně pracuju se zálohami SQL databáze o velikosti cca 80 MB - bez jakýchkoliv výkonnostních problémů.

    Začínám mít pocit, že byla chyba, že jsem po naší debatě nad VCS v létě nenapsal Vaškovi Stoupovi, jestli nemůžu o Mercurialu něco říct na WebExpu. Bylo by to možná zajímavé srovnání s Karmiho Gitem a navíc by si nemalé množství lidí přestalo myslet, že DVCS = Git.
  • abtris
    Mercurial 1.1.2 soubor přidá, ale nevíš co s tím může být za problémy, pokud tam to upozornění je. A myslím, že ve starší verzi mi to ani nepřidal a trvá to dost dlouho.

    Osobně Bazaar se mi líbí, používá se hodně ve vývoji Ubuntu, ale má podle mě stejnou vadu jako Mercurial a to je ten python, Git je z velké části napsaný v C-ku a postupně se i ty skripty přepíšou a bude to prostě ten nejrychlejší.

    Bazaar ve verzi 2.0 je celkem vyspělý a podpora přejmenování a sledování adresářů může být pro někoho dost důležitá, ale u mě zatím vítězí rychlost a tam vede Git.
  • Omezení na 10MB je opravdu brutální, tohle by se ve všech debatách hg vs. git mělo uvádět na prvním místě. Git má sice podle mého názoru problémy v použitelnosti, ale asi je to i tak v současnosti jediný rozumně použitelný DVCS.

    Mimochodem, co si myslíš o Bazaaru? Myslím, že většina lidí (včetně mě) ho apriori odmítá kvůli tomu, že je to příliš malý hráč, ale nestál by taky za zvážení?
blog comments powered by Disqus

Switch to our mobile site