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.
Contents
1. Jméno uživatele
Při potvrzování změn (příkazem commit) používá Mercurial jméno uživatele implicitně ve tvaru 'Name <user@localhost>'. Nejlepší je zapsat jméno uživatele do konfiguračního souboru ~/.hgrc 1 (nebo ve Windows v %USERPROFILE%\Mercurial.ini) připsáním následujících řádků:
[ui] username = John Doe <john@example.com>
2. Práce na existujícím projektu
Známe-li URL 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 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é lokální změny, update: (current) znamená, že pracovní adresář je aktualizován (update) pro nejnovější revizi repozitáře.
3. 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 2, 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 potvrzení (commit):
$ 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
4. Clone, Commit, Merge
$ hg clone project project-work # klonovat pracovní adresář s repozitářem $ cd project-work $ <make changes> # provést nějaké změny $ hg commit $ cd ../project $ <make other changes> # provést jiné změny $ hg commit $ hg pull ../project-work # stáhnout changesety z 'project-work' $ hg merge # sloučit stažený tip s tipem našeho repozitáře $ hg parents # prohlédnout si stažené a sloučené revize $ hg commit # předat výsledek sloučení
Viz clone, commit, pull, merge
5. Export oprávky
(provedené změny) $ hg commit $ hg export tip # exportovat poslední komit
Viz export
6. 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ů z existujícího 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ů ke vzdálenému repozitáři přes SSH $ hg push ssh://user@example.com/hg/