Differences between revisions 1 and 16 (spanning 15 versions)
Revision 1 as of 2010-04-24 15:46:26
Size: 6079
Editor: Tovim
Comment:
Revision 16 as of 2012-04-28 08:01:49
Size: 5213
Editor: Tovim
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
''(viz také [[Základy Mercurialu]], ZcechTutorial, [[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.
Line 10: Line 11:
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}}} <<FootNote(http://www.selenic.com/mercurial/hgrc.5.html)>> (nebo ve Windows v {{{%USERPROFILE%\Mercurial.ini}}}) připsáním následujících řádků:
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}}} <<FootNote(http://www.selenic.com/mercurial/hgrc.5.html)>> (nebo ve Windows v {{{%USERPROFILE%\Mercurial.ini}}}) připsáním následujících řádků:
Line 18: Line 18:
== Práce ne existujícím projektu == == Práce na existujícím projektu ==
Line 20: Line 20:
Známe-li URL projektu (například [[http://selenic.com/hg]]), můžeme získat jeho kopii následovně: Známe-li URL [[Repository|repozitáře]] projektu, například  [[http://selenic.com/hg]]), můžeme získat jeho kopii následovně:
Line 34: Line 34:
Příkaz vytvoří nový adresář {{{mercurial-repo}}} do něhož přenese celou historii projektu - [[Repository|repozitář]] {{{.hg}}} a případně všechny pracovní soubory (viz [[http://www.selenic.com/mercurial/hg.1.html#clone|clone]]). 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.
Line 36: Line 36:
Podívejme se, co bylo přeneseno (see [[http://www.selenic.com/mercurial/hg.1.html#parents|parents]]):
Line 38: Line 37:
{{{
$ 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 [[http://www.selenic.com/mercurial/hg.1.html#summary|summary]] (Zavedený v Mercurialu 1.4) vypíše souhrn [[WorkingDirectory|pracovního adresáře]]. Názvy příkazů lze zkracovat, takže postačí {{{hg sum}}}:
Příkaz {{{summary}}} provede sumarizaci stavu [[WorkingDirectory|pracovního adresáře]]. Názvy příkazů lze zkracovat, takže postačí {{{hg sum}}}:
Line 59: Line 48:
{{{commit: (clean)}}} znamená, že pracovní adresář neobsahuje lokální změny {{{update: (current)}}} znamená, že sledované soubory pracovního adresáře jsou aktualizovány ([[http://www.selenic.com/mercurial/hg.1.html#update|update]]) k nejnovější revizi repozitáře. Zde {{{commit: (clean)}}} znamená, že nejsou žádné [[LocalModifications|lokálzmě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.
Line 61: Line 50:
== Založení nového projektu == == Založení nového projektu v Mercurialu ==
Line 63: Line 52:
Nový repozitář v adresáři {{{Holba}}} vytvoříme příkazem [[http://www.selenic.com/mercurial/hg.1.html#init|init]]: Vytvořme repozitář v existující projektové složce, např. {{{Rolba/}}}:
Line 66: Line 55:
$ cd Holba/
$ hg init # creates .hg
$ cd rolba
$ hg init # vytvoří složku .hg
Line 70: Line 59:
Mercurial vyhledává soubor [[.hgignore]] <<FootNote(http://www.selenic.com/mercurial/hgignore.5.html)>> 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: Mercurial bude v kořenové složce repozitáře hledat soubor se jménem ''`.hgignore`'' <<FootNote(http://www.selenic.com/mercurial/hgignore.5.html)>>, 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`'' :
Line 84: Line 73:
Tento soubor vytvoříme buď sami, nebo se vytvoří sám po prvním použití příkazu {{{hg ignore}}}. 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):
Line 86: Line 80:
Stav pracovního adresáře zjistíme příkazem [[http://www.selenic.com/mercurial/hg.1.html#status|status]]: {{{
$ 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:
Line 89: Line 89:
$ hg status $ hg help
Line 92: Line 92:
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]]):
Line 95: Line 93:
{{{
$ 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
}}}
Line 116: Line 97:
$ hg clone project project-work   # klonovat pracovní adresář s repozitářem $ hg clone project project-work # klonovat repozitář
Line 118: Line 99:
$ <make changes> # provést nějaké změny $ <provést změny>
Line 121: Line 102:
$ <make other changes> # provést jiné změny $ <provést jiné změny>
Line 124: Line 105:
$ 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í
$ 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í
Line 129: Line 110:
See [[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]] 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]]
Line 131: Line 112:
== Exporting a patch == == Export oprávky ==
Line 134: Line 115:
(make changes) (provést změny)
Line 136: Line 117:
$ hg export tip # export the most recent commit $ hg export tip # exportovat poslední komit
Line 139: Line 120:
See [[http://www.selenic.com/mercurial/hg.1.html#export|export]] Viz [[http://www.selenic.com/mercurial/hg.1.html#export|export]]
Line 141: Line 122:
== Network support == == Podpora webové sítě ==
Line 144: Line 125:
# clone from the primary Mercurial repo # klon z primárního repozitáře Mercurialu
Line 148: Line 129:
# pull new changesets from an existing other repo into the repository (.hg) # stažení nových changesetů ze vzdáleného do lokálního repozitáře (.hg)
Line 151: Line 132:
# export your current repo via HTTP with browsable interface on port 8000 # export lokálního repozitáře přes HTTP na port 8000
Line 154: Line 135:
# push changesets to a remote repo with SSH # vyslání changesetů do vzdáleného repozitáře přes SSH
Line 158: Line 139:
See [[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]] 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]]
Line 161: Line 142:
'''translations:''' [[ChineseQuickStart|Chinese]] [[FrenchQuickStart|Français]] [[QuickStartDe|German]] [[QuickStartPtBr|Portuguese]] [[JapaneseQuickStart|Japanese]] [[ThaiQuickStart|Thai]]

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