Differences between revisions 2 and 3
Revision 2 as of 2010-04-24 16:59:50
Size: 6087
Editor: Tovim
Comment:
Revision 3 as of 2010-04-25 07:47:48
Size: 6407
Editor: Tovim
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:

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. Úvod jestiť to poněkud chaotický. Jak jsem koupil, tak předávám. (Tovim)
Line 67: Line 69:
$ hg init # creates .hg $ hg init # vytvoří složku .hg
Line 69: Line 71:

Stav pracovního adresáře zjistíme příkazem [[http://www.selenic.com/mercurial/hg.1.html#status|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 označením 'A' (added), 'R' (removed), 'M' (modified), '?' (nesledován).
Soubory, které chceme trvale vyřadit ze sledování, zapíšeme do souboru .hgignore.
Line 86: Line 97:
Stav pracovního adresáře zjistíme příkazem [[http://www.selenic.com/mercurial/hg.1.html#status|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 [[http://www.selenic.com/mercurial/hg.1.html#add|add]] (přidat)a posléze je předat ([[http://www.selenic.com/mercurial/hg.1.html#commit|commit]]):
Změny, které chceme zapsat do repozitáře, musíme nejprve [[http://www.selenic.com/mercurial/hg.1.html#add|add]] (přidat)a posléze je předat ([[http://www.selenic.com/mercurial/hg.1.html#commit|commit]]):

Stručný úvod pro netrpělivé

(viz také Základy Mercurialu, CzechTutorial, QuickStart2 a http://mercurial.selenic.com/quickstart/)

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. Úvod jestiť to poněkud chaotický. Jak jsem koupil, tak předávám. (Tovim)

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           # vytvoří složku .hg

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 označením 'A' (added), 'R' (removed), 'M' (modified), '?' (nesledován). Soubory, které chceme trvale vyřadit ze sledování, zapíšeme do souboru .hgignore.

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.

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/

See pull, serve, push


translations: Chinese Français German Portuguese Japanese Thai

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