Tutoriál 6 - Stažení změn s jiného repozitáře

Předchozí kapitola Tutoriálu pojednávala o Naší první změně, následující kapitola popíše Export změny do souboru

V předchozí kapitole jsme v adresáři moje-halo-output změnili soubor a vytvořili changeset v repozitáři. Nyní chceme tuto změnu někam předat.

Podle zavedené zvyklosti si nejprve vytvoříme klon originálního adresáře.

> cd ..
> hg clone moje-halo moje-halo-share
updating working directory
2 files updated, 0 files merged, 0 files removed, 0 files unresolved

Můžeme použít příkaz tip, abychom zjistili, který changset je poslední v repozitáři. Zadáme volbu -q ("be quiet") aby Mercurial nevytiskl úplný popis tipu.

> cd moje-halo-share
> hg -q tip
1:82e55d328c8c
> cd ../moje-halo-output
$ hg -q tip
2:86794f718fb1

Jak vidíme, v každém repozitáři je jiný tip. Vraťme se do moje-halo-share a přenesme tam náš nový changeset. Provedeme to příkazem pull, který "stáhne" všechny odlišné changesety do našeho repozitáře.

> cd ../moje-halo-share
> hg pull ../moje-halo-output
pulling from ../moje-halo-output
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)

Na rozdíl od jiných příkazů Mercurialu je pull hovorný. V tomto případě bylo stažení úspěšné.

Poslední řádek výstupu je důležitý. Mercurial implicitně neaktualizuje pracovní adresář po příkazu pull. To znamená, že i když repozitář obsahuje poslední changeset, má soubor hello.c stále ještě nezměněný obsah. Provedeme aktualizaci souboru (a případně všech ostatních, které mohly vzniknout během operace pull) příkazem update, použijeme však zkratku up:

> hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

V této chvíli lze zkontrolovat, že moje-halo-share a moje-halo-output mají shodné obsahy a historii revizí.

Kontrolu lze provést tak, že z adresáře moje-halo-share provedeme následující:

> hg pull ../ 'moje-halo-output'
> hg push ../ 'moje-halo-output'

Jestliže v obou případech dostaneme 'no changes found' (změny nenalezeny), znamená to, že jsou repozitáře identické. Totéž můžeme provést pro 'moje-halo-share z adresáře 'moje-halo-output.

K zaslání změn jiné osobě se dostaneme v další kapitole Export změny do souboru.


CategoryCzech

CzechTutorialShareChange (last edited 2013-11-15 20:23:29 by Tovim)