Pakeitimų taikymas kitai saugyklai

(šis puslapis - viena iš LithuanianTutorial įvado dalių. Ankstesnė dalis - LithuanianTutorialFirstChange, kita dalis - LithuanianTutorialExport)

Praeitame skyrelyje mes sukūrėme pakeitimų rinkinį (ChangeSet) saugykloje (Repository) mano-hello-nauja-eilute. Dabar tuos pakeitimus perkelsime kitur.

Laikydamiesi gero darbo su Mercurial stiliaus, visų pirma klonuokime mūsų originaliąją saugyklą.

$ cd ..
$ hg clone mano-hello mano-hello-pervesti-pakeitimai
updating working directory
2 files updated, 0 files merged, 0 files removed, 0 files unresolved

Galime naudoti tip komandą, kad sužinotume mus dominančios saugyklos viršūnę. (Atsiminkite, viršūnė - tai pats naujausias pakeitimų rinkinys). Naudojame papildomą parametrą -q, kuris Mercurial sistemai nurodo neišvedinėti pilno viršūnės aprašymo.

$ cd mano-hello-pervesti-pakeitimai
$ hg -q tip
1:82e55d328c8c
$ cd ../mano-hello-nauja-eilute
$ hg -q tip
2:86794f718fb1

Kaip matome, viršūnės saugyklose yra skirtingos. Grįžkime į namo-hello-su-pervestais-pakeitimais ir čia pritaikykime mūsų naują pakeitimų rinkinį. Tam naudojame pull komandą, kuri pasiima visus kitoje saugykloje esančius pakeitimus, kurių dar nėra šioje.

$ cd ../mano-hello-pervesti-pakeitimai
$ hg pull ../mano-hello-nauja-eilute
pulling from ../mano-hello-nauja-eilute
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)

Kitaip negu kitos pagrindinės Mercurial komandos, pull nėra "tyli" - jeigu operacija įvykdoma sklandžiai, išvedamos štai tokios eilutės.

Atkreipkite dėmesį į paskutinę išvesties eilutę. Standartiškai, Mercurial neatnaujina darbinio katalogo (WorkingDirectory) po pull komandos įvykdymo. Tai reiškia, jog, nors saugykloje dabar yra naujas pakeitimų rinkinys, darbiniame kataloge esantis failas hello.c vis dar yra nemodifikuotas (t.y. failo turinys liko toks, koks jis buvo prieš vykdant pull komandą).

Mes galime atnaujinti (update) šį failą (ir visus kitus, kurie buvo įtraukti į pakeitimų rinkinį, pritaikytą šiai saugyklai), naudodami komandą update arba jos trumpinį up:

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

Dabar jau galime įsitikinti, kad saugyklų mano-hello-pervesti-pakeitimai ir mano-hello-nauja-eilute turinys ir pakeitimų istorija sutampa:

$ hg pull ../mano-hello-nauja-eilute
$ hg push ../mano-hello-nauja-eilute

Jeigu abi šios komandos grąžina pranešimą no changes found, tuomet galime būti tikri, kad saugyklos yra identiškos. Šias komandas galime įvykdyti ir naudodami mano-hello-pervesti-pakeitimai saugyklą.

Norėdami atliktu darbu pasidalinti su kaitais, turėsime eksportuoti savo pakeitimus - LithuanianTutorialExport.


CategoryTutorial

LithuanianTutorialShareChange (last edited 2013-04-25 09:53:11 by MariusKrivicius)