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.