Saugyklos kopijavimas
(šis puslapis - viena iš LithuanianTutorial įvado dalių. Ankstesnė dalis - LithuanianTutorialInstall, kita dalis - LithuanianTutorialHistory)
Mūsų Mercurial paruoštas - galime pradėti mokytis.
Mercurial sistemoje visą savo darbą atliekame saugykloje (Repository). Saugykla - tai tam tikras kompiuterio diske sukurtas katalogas. Jame yra laikomi visi rašomų programų įeities tekstai, kurių pakeitimus mes norime sekti. Taip pat saugykloje laikomos ir pilnos tų failų pakeitimų istorijos (.hg direktorijoje — žr. UnderstandingMercurial).
Lengviausias būdas, pradėti dirbti su Mercurial sistema, tai pasinaudoti egzistuojančia saugykla, kurioje jau yra keli failai ir jų pakeitimų istorija.
Tam naudosime clone komandą.1 Ši komanda tiesiog sukuria nurodytos saugyklos kloną (Clone) - t.y. visi kokios nors saugyklos failai ir jų istorija nukopijuojami į kitą saugyklą, pavyzdžiui, mūsų naujai sukurtą ir nuosavą, kurioje galėtume laisvai dirbti.
Taigi nusikopijuokime mažą "hello, world" saugyklą, esancią selenic.com tinklapyje:
$ hg clone http://www.selenic.com/repo/hello mano-hello
Jeigu viskas įvyko sėkmingai, clone komanda išves štai ką (Mercurial 1.4):
requesting all changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
Dabar mūsų darbiniame kataloge turėtume rasti naują pakatalogį mano-hello:
$ ls mano-hello
mano-hello katalogo viduje turėtume rasti kelis failus bei .hg direktoriją, kurioje saugomi Mercurial sistemos duomenys (iš esmės tai visos saugyklos istorija ir informacija apie atskiras jos būsenas — žr. Repository):
$ ls -a . .. .hg Makefile hello.c
Šie failai yra tikslios kopijos tų, kurie buvo mūsų kątik klonuotos saugyklos numatytosios šakos paskutinėje (tip) versijoje.
Svarbu: kiekviena Mercurial saugykla yra visiškai nepriklausoma. Kai klonuojame saugyklą, naujai sukurta saugykla tampa tikslia senesnės saugyklos kopija (clone komandos įvykdymo metu), bet tolimesni pakeitimai bet kurioje iš saugyklų automatiškai neatsidurs kitoje, nebent jūs specialiai juos pervesite Pull ar Push komandomis.
Standartiškai, hg clone į naujos saugyklos darbinį katalogą (WorkingDirectory) įkelia viršutinį (turintį tip žymę) pakeitimų rinkinį - t.y. naujausią saugyklos "numatytosios šakos" reviziją (Revision). Norėdami sužinoti, kuri revizija šiuo metu yra įkelta į darbinį katalogą, galime pasinaudoti parents komanda:2
$ hg parents changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile
Toliau pradėsime nagrinėti mūsų naujos saugyklos istoriją - LithuanianTutorialHistory.