== Saugyklos pakeitimų istorija == ''(šis puslapis - viena iš [[LithuanianTutorial]] įvado dalių. Ankstesnė dalis - [[LithuanianTutorialClone]], kita dalis - [[LithuanianTutorialFirstChange]])'' Taigi, pasinaudoję {{{clone}}} komanda, mes klonavome saugyklą ([[Repository]]) ir dabar turime tikslią jos kopiją, pavadintą {{{mano-hello}}}. Peržiūrėkime šios saugyklos istoriją. Tam naudosime komandą {{{log}}}. Bus parodytas visų šioje saugykloje įvykdytų veiksmų sąrašas, pradedant nuo naujausių ir baigiant pačia pirma saugykloje atlikta operacija. {{{ $ hg log changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile changeset: 0:0a04b987be5a user: mpm@selenic.com date: Fri Aug 26 01:20:50 2005 -0700 summary: Create a standard "hello, world" program }}} Išsiaiškinkime, ką reiškią šios išvestos eilutės: * Kiekvienas paragrafas aprašo atskirą pakeitimų rinkinį ([[ChangeSet]]). Pakeitimų rinkinys - tai vieno ar kelių failų pakeitimai, sugrupuoti į vieną loginį elementą. * Mūsų atveju viršuje matome, kad saugyklos istorija susideda iš dviejų pakeitimų rinkinių. * {{{changeset}}} rodo pakeitimų rinkinį. * Pirmas skaičius prieš dvitaškį nurodo versijos (revizijos) numerį ([[RevisionNumber]]) - jis skirtas vietiniam pakeitimų rinkinio identifikavimui. Šis numeris galioja tik saugyklos viduje. * Šešioliktainė eilutė po dvitaškio - tai trumpos formos pakeitimų rinkinio ID ([[ChangeSetID|changeset ID]]). Jis tiksliai įvardina pakeitimų rinkinį ir yra toks pat visose saugyklose, kuriose šis rinkinys yra. Jeigu su kuo nors kalbate apie pakeitimų rinkinį, naudokite šį ID, o ne versijos numerį. * {{{tag}}} yra žymė ([[Tag]]), sutartinis simbolinis vardas, suteiktas pakeitimų rinkiniui. * Bet kuriam pakeitimų rinkiniui galima priskirti vieną ar kelias žymes. Tačiau nedaug pakeitimų rinkinių turi jiems priskirtas žymes, taigi {{{tag}}} eilutės dažnai nebus. * Speciali žymė, pavadinta `tip`, visada reiškia viršūnę - t.y. patį naujausią saugyklos pakeitimų rinkinį. Jeigu sukursite kitą pakeitimų rinkinį (mes netrukus tai padarysime), {{{tip}}} žymė bus pašalinta iš dabartinės viršūnės ir suteikta naujam pakeitimų rinkiniui. * {{{user}}} nurodo pakeitimų rinkinio autorių. Tai laisvos formos eilutė, kurioje dažniausiai yra elektroninio pašto adresas, o kartais ir asmens vardas. * {{{date}}} nurodo pakeitimų rinkinio sukūrimo datą. Šios datos įrašomos tokiu laiko juostos formatu, kokį naudojo pakeitimų rinkinio autorius. * {{{summary}}} pateikia pirmą pakeitimų rinkinio aprašo eilutę, kurią įvedė pakeitimų rinkinio autorius, kad padėtų sau ir kitiems vėliau greitai suprasti pakeitimų rinkinio paskirtį. * {{{parent}}} nurodo pakeitimų rinkinio tėvus, jeigu jų yra daugiau nei vienas, o taip atsitinka, kai suliejami ([[Merge]]) pakeitimai iš kelių vietų. * Dažniausiai būna tik vienas tėvas - tai senesnis pakeitimų rinkinys, einantis iš karto po mūsų nagrinėjamo. Taip yra ir mūsų pavyzdyje viršuje. Detalesnę saugyklos istorijos informaciją galima sužinoti pasinaudojus išplėstine išvestimi su parametru {{{-v}}}, arba globaliu {{{--debug}}} parametru, kuris parodys viską ką turi: {{{ $ hg log -v changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 files: Makefile description: Create a makefile (...) $ hg log --debug changeset: 1:82e55d328c8ca4ee16520036c0aaace03a5beb65 tag: tip parent: 0:0a04b987be5ae354b710cefeba0e2d9de7ad41a9 parent: -1:0000000000000000000000000000000000000000 manifest: 1:0c7c1d435e6703e03ac6634a7c32da3a082d1600 user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 files+: Makefile extra: branch=default description: Create a makefile (...) }}} Išplėstinė išvestis turi keletą naujų eilučių, palyginus su standartine. * {{{files}}} išvardina failus, kurie buvo modifikuoti šiame pakeitimų rinkinyje. * {{{description}}} turi pilną pakeitimų rinkinio aprašymą, o ne tik pirmą jo eilutę. * Mūsų atveju, aprašymai yra vienos eilutės ilgio, todėl čia skirtumo nesimato. `--debug` išvestis prie išplėstinės prideda šias papildomas eilutes (žr. [[DebuggingFeatures]]): * {{{changeset}}} dabar rodo nesutrumpintą pakeitimų rinkinio ID. * dvi {{{parent}}} eilutės, kuriose pateikiami abiejų šio pakeitimų rinkinio tėvų ID. Čia {{{-1:0000000000000000000000000000000000000000}}} reiškia neegzistuojantį tėvą. * {{{manifest}}} parodo [[Manifest|manifesto]] (saugykloje esančių failų ir jų versijų aprašymo) ID šiam pakeitimų rinkiniui. * {{{file+}}} išvardina failus, kurie buvo pridėti šiame pakeitimų rinkinyje. * {{{file-}}} išvardina failus, kurie buvo pašalinti šiame pakeitimų rinkinyje. Komanda {{{log}}} turi {{{-r}}} parametrą atskirų pakeitimų rinkinių peržiūrėjimui. {{{ $ hg log -r1 changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile }}} nurodant {{{-r}}} parametrą galima naudoti labai lanksčią sintaksę, norint pasirinkti kelių pakeitimų rinkinių grupę. Dėl mažo pakeitimų rinkinių skaičiaus mūsų saugykloje, dabar to pademonstruoti negalime. Daugiau informacijos rasite [[http://www.selenic.com/mercurial/hg.1.html#log|žinyno puslapyje]]. Taip pat galima pridėti parametrą {{{-p}}} - bus parodytos ir su pakeitimų rinkiniu susijusios atskiros failų modifikacijos: {{{ $ hg log -r1 -p changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile diff -r 0a04b987be5a -r 82e55d328c8c Makefile --- /dev/null Fri Aug 26 01:20:50 2005 -0700 +++ b/Makefile Fri Aug 26 01:21:28 2005 -0700 @@ -0,0 +1,1 @@ +all: hello }}} Galime naudoti ir {{{tip}}} komandą, kad pamatytume informaciją apie viršūnę, t.y. naujausią pakeitimų rinkinį. {{{tip}}} komanda - tai trumpesnė {{{log -r tip}}} alternatyva. {{{ $ hg tip changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile $ hg log -r tip changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile }}} Jau žinome, kas yra mūsų saugykloje, ir kaip tai buvo sukurta, taigi keliaukime į [[LithuanianTutorialFirstChange]] ir padarykime keletą pakeitimų patys! ---- CategoryTutorial