== 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