Stručný úvod pro netrpělivé
(viz také Základy Mercurialu, CzechTutorial, QuickStart2 a http://mercurial.selenic.com/quickstart/)
Contents
1. Jméno uživatele
Při zápisu změn (commit) používá Mercurial jméno uživatele implicitně ve tvaru '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 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ář mercurial-repo do něhož přenese celou historii projektu - repozitář .hg a případně všechny pracovní soubory (viz clone).
Podívejme se, co bylo přeneseno (see parents):
$ cd mercurial-repo $ hg parents changeset: 9632:16698d87ad20 tag: tip user: Nicolas Dumazet <...> date: Mon Sep 21 19:21:32 2009 +0200 summary: util: use sys.argv[0] if $HG is unset and 'hg' is not in PATH
Příkaz summary (Zavedený v Mercurialu 1.4) vypíše souhrn 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)
commit: (clean) znamená, že pracovní adresář neobsahuje lokální změny update: (current) znamená, že sledované soubory pracovního adresáře jsou aktualizovány (update) k nejnovější revizi repozitáře.
3. Založení nového projektu
Nový repozitář v adresáři Holba vytvoříme příkazem init:
$ cd Holba/ $ hg init # creates .hg
Mercurial vyhledává soubor .hgignore 2 v pracovním adresáři, který obsahuje sadu vzorů (glob) a regulárních výrazů, které mají být na cestách k souborům ignorovány. Zde je příklad souboru .hgignore:
syntax: glob *.orig *.rej *~ *.o tests/*.err syntax: regexp .*\#.*\#$
Tento soubor vytvoříme buď sami, nebo se vytvoří sám po prvním použití příkazu hg ignore.
Stav pracovního adresáře zjistíme příkazem status:
$ hg status
Pokud se nic nezobrazí, je naše pracovní kopie "čistá". Pokud obsahuje změněné, přidané nebo odebrané soubory, vypíše tyto soubory s flagy 'A' (added), 'R' (removed), 'M' (modified), '?' (nesledován). Soubory, které chceme trvale vyřadit ze sledování, zapíšeme do souboru .hgignore. Změny, které chceme zapsat do repozitáře, musíme nejprve add (přidat)a posléze je předat (commit):
$ hg add # přidat ony 'neznáme' soubory $ hg commit # předat všechny změny do nového changesetu $ hg parents # zobrazit právě vytvořenou revizi (changeset)
Podrobný popis všech příkazů viz http://www.selenic.com/mercurial/hg.1.html nebo lze zadat:
$ hg help
Nápovědu pro konkretní příkaz (např. add) vyvoláme příkazem:
$ hg help add
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í
See clone, commit, pull, merge
5. Export oprávky
(make changes) $ 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 # pull new changesets from an existing other repo into the repository (.hg) $ hg pull http://selenic.com/hg/ # export your current repo via HTTP with browsable interface on port 8000 $ hg serve -n "My repo" # push changesets to a remote repo with SSH $ hg push ssh://user@example.com/hg/
translations: Chinese Français German Portuguese Japanese Thai