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.

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) k 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 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

4. Clone, Commit, Merge

$ hg clone project project-work  # klonovat repozitář
$ cd project-work
$ <provést změny>                
$ hg commit
$ cd ../project
$ <provést jiné změny>          
$ 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 clone, commit, pull, merge

5. Export oprávky

(provést 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ů 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 pull, serve, push


CzechQuickStart (last edited 2012-12-15 13:22:33 by Tovim)