Differences between revisions 12 and 13
Revision 12 as of 2010-11-15 21:22:29
Size: 5310
Editor: Tovim
Comment:
Revision 13 as of 2010-11-17 20:17:26
Size: 5261
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) 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 11: 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 zápisu změn (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 48: Line 48:
Zde {{{commit: (clean)}}} znamená, že nejsou žádné [[LocalModifications|lokální změny]], {{{update: (current)}}} znamená, že 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ální změny]], {{{update: (current)}}} znamená, že pracovní adresář je aktualizován ([[http://www.selenic.com/mercurial/hg.1.html#update|update]]) pro nejnovější revizi repozitáře.
Line 52: Line 52:
Chtějme vytvořit repozitář v projektové složce {{{Rolba/}}}: Vytvořme repozitář v existující projektové složce, např. {{{Rolba/}}}:
Line 55: Line 55:
$ cd rolba/ $ cd rolba
Line 59: Line 59:
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`'': 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 75: Line 75:
$ hg status     # zobrazí všechny neignorované soubory $ hg status # zobrazí všechny neignorované soubory
Line 78: Line 78:
To 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): 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 97: Line 97:
$ hg clone project project-work   # klonovat pracovní adresář s repozitářem $ hg clone project project-work # klonovat pracovní adresář s repozitářem
Line 99: Line 99:
$ <make changes>   # provést nějaké změny $ <make changes> # provést nějaké změny
Line 102: Line 102:
$ <make other changes>   # provést jiné změny $ <make other changes> # provést jiné změny
Line 110: 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 115: Line 115:
(make changes) (provedené změny)
Line 129: Line 129:
# pull new changesets from an existing other repo into the repository (.hg) # stažení nových changesetů z existujícího vzdáleného do lokálního repozitáře (hg)
Line 132: 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 135: Line 135:
# push changesets to a remote repo with SSH # vyslání changesetů ke vzdálemu repozitáři přes SSH
Line 139: 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]]

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 zápisu změn (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/

Viz pull, serve, push


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