#pragma section-numbers 2 = Stručný úvod pro netrpělivé = Jedno české přísloví praví: "Když spěcháš, tak si sedni." Kdo by si myslel, že po přečtení tohoto stručného úvodu bude dostatečně vybaven pro samostatnou práci s Mercurialem, může být zklamán. <> == Jméno uživatele == Při potvrzování změn (příkazem commit) používá Mercurial jméno uživatele implicitně ve tvaru {{{Name }}}. Nejlepší je zapsat jméno uživatele do konfiguračního souboru {{{~/.hgrc}}} <> (nebo ve Windows v {{{%USERPROFILE%\Mercurial.ini}}}) připsáním následujících řádků: {{{ [ui] username = John Doe }}} == Práce na existujícím projektu == Známe-li URL [[Repository|repozitáře]] projektu (například [[http://selenic.com/hg]]), můžeme získat jeho kopii následovně: {{{ $ hg clone http://selenic.com/hg mercurial-repo real URL is http://www.selenic.com/hg/ requesting all changes adding changesets adding manifests adding file changes added 9633 changesets with 19124 changes to 1271 files updating to branch default 1084 files updated, 0 files merged, 0 files removed, 0 files unresolved }}} Příkaz vytvoří nový adresář projektu {{{mercurial-repo}}} do něhož přenese celou historii projektu a pracovní adresář nastaví k poslednímu changesetu stávající větve. Příkaz {{{summary}}} provede sumarizaci stavu [[WorkingDirectory|pracovního adresáře]]. Názvy příkazů lze zkracovat, takže postačí {{{hg sum}}}: {{{ $ hg sum parent: 9632:16698d87ad20 tip util: use sys.argv[0] if $HG is unset and 'hg' is not in PATH branch: default commit: (clean) update: (current) }}} Zde {{{commit: (clean)}}} znamená, že nejsou žádné [[LocalModifications|lokální změny]], {{{update: (current)}}} znamená, že pracovní adresář je aktualizován ([[http://www.selenic.com/mercurial/hg.1.html#update|update]]) k nejnovější revizi repozitáře. == Založení nového projektu v Mercurialu == Vytvořme repozitář v existující projektové složce, např. {{{Rolba/}}}: {{{ $ cd rolba $ hg init # vytvoří složku .hg }}} Mercurial bude v kořenové složce repozitáře hledat soubor se jménem ''`.hgignore`'' <>, který obsahuje globální vzory a regulární výrazy, které mají být při výběru souborů ignorovány. Zde je příklad souboru ''`.hgignore`'' : {{{ syntax: glob *.orig *.rej *~ *.o tests/*.err syntax: regexp .*\#.*\#$ }}} Soubor ''`.hgignore`'' otestujeme příkazem `status`: {{{ $ hg status # zobrazí všechny neignorované soubory }}} Příkaz vypíše všechny soubory, které nejsou ignorovány s označením '?' (nesledováno). Editujte svůj soubor `.hgignore` tak dlouho, až příkaz `status` vypíše jenom ty soubory, které si přejete. Mezi sledované soubory musíte uvést také soubor `.hgignore`! Zřejmě ale nebudete chtít sledovat soubory, generované procesem ''build''. Poté, co budete s úpravami souboru spokojeni, proveďte přidání (add) sledovaných souborů a posléze jejich předání (commit) do repozitáře: {{{ $ hg add # přidání 'neznámých' souborů $ hg commit # potvrzení všech změn pro nový changeset $ hg parents # zobrazit právě vybranou revizi (changeset) }}} Potřebujeme-li nápovědu, jednoduše zadáme: {{{ $ hg help }}} == Clone, Commit, Merge == {{{ $ hg clone project project-work # klonovat repozitář $ cd project-work $ $ hg commit $ cd ../project $ $ hg commit $ hg pull ../project-work # stáhnout changesety z 'project-work' $ hg merge # připojit nový tip z project-work do našeho prac. adresáře $ hg parents # prohlédnout si revize, včleněné do našeho pracovního adr. $ hg commit # komitovat výsledek sloučení }}} Viz [[http://www.selenic.com/mercurial/hg.1.html#clone|clone]], [[http://www.selenic.com/mercurial/hg.1.html#commit|commit]], [[http://www.selenic.com/mercurial/hg.1.html#pull|pull]], [[http://www.selenic.com/mercurial/hg.1.html#merge|merge]] == Export oprávky == {{{ (provést změny) $ hg commit $ hg export tip # exportovat poslední komit }}} Viz [[http://www.selenic.com/mercurial/hg.1.html#export|export]] == Podpora webové sítě == {{{ # klon z primárního repozitáře Mercurialu $ hg clone http://selenic.com/hg/ $ cd hg # stažení nových changesetů ze vzdáleného do lokálního repozitáře (.hg) $ hg pull http://selenic.com/hg/ # export lokálního repozitáře přes HTTP na port 8000 $ hg serve -n "My repo" # vyslání changesetů do vzdáleného repozitáře přes SSH $ hg push ssh://user@example.com/hg/ }}} Viz [[http://www.selenic.com/mercurial/hg.1.html#pull|pull]], [[http://www.selenic.com/mercurial/hg.1.html#serve|serve]], [[http://www.selenic.com/mercurial/hg.1.html#push|push]] ----