SlideShare a Scribd company logo
Naudokit Versijų
Kontrolės sistemą!

     Ignas Mikalajūnas
      <ignas@nous.lt>

           NOUS
        http://nous.lt/




           IT Naktis 2010
Svarbiausias dalykas
Programuotojo gyvenime
Rimtai
Svarbiau negu programavimo
  kalba kurią pasirinksite
Nesvarbu kokią VCS pasirinksite
(git, bazaar, darcs, svn, mercurial)
Kas yra ta VCS ir kam man jos
           reikia?
Mano darbo procesas tobulėjo
          štai taip
Parašai.
Paleidi.
Parašai.
Paleidi.
Išsaugai.
Parašai.
Išsaugai.
Sukompiliuoji.
Paleidi.
Parašai.
Išsaugai.
Sukompiliuoji.
Paleidi.

Parašai.
Išsaugai.
Sukompiliuoji.
Paleidi.
Parašai.
Išsaugai.
Sukompiliuoji.
Paleidi.
       <- čia reikia VCS
Parašai.
Išsaugai.
Sukompiliuoji.
Paleidi.
Parašai.
Išsaugai.
Sukompiliuoji.
Paleidi.

Išsaugai (commit) į VCS ir parašai ką naujo
padarei

Parašai.
Išsaugai.
Sukompiliuoji.
Paleidi.
Kodėl ją reikia naudoti
Kaip pradėjau aš
Dalintis kodu su draugais ir
dirbti komandoje prie vieno
         projekto
Iki VCS
From: Jonas

Labas, siunčiu naują foo.c versiją.
From: Jonas

Labas, siunčiu naują foo.c versiją. Šį kartą
prikabinau.
From: Jonas

Labas, siunčiu naują bar.c versiją. Be jos ta
foo.c kurią siunčiau neveiks.
From: Petras

Labas, siunčiu naują foo.c versiją, perrašiau
beveik viską ten buvo kažkokios
nesamonės.
Versijų kontrolės sistema -
 padeda dalintis kodu su
        draugais!
Kita svarbi priežastis
Aš ne Einšteinas
Vienu metu galiu aprėpti max
     ~1000 eilučių kodo
   (jei labai labai stengiuosi)
Kai buvau jaunas ir kvailas
 dauguma mano projektų
      "augdavo" taip
Pradedu rašyti savo 3D engine
Po dviejų trijų dienų jis jau gali
 pavaizduoti besisukantį kubą
            ekrane.
          (500 eilučių)
Po dar dviejų trijų dienų kubas
        šešėliuojamas.
         (800 eilučių)
Po dar dviejų trijų dienų kubas
     tekstūruojamas (bet
     nebešešėliuojamas).
        (1000 eilučių)
Po dar dviejų trijų dienų -
programa neveikia, o paskutinis
backupas iš tų laikų kai kubas
   buvo beveik su šešėliais.
         (1200 eilučių)
Po savaitės - pavyko priversti
   programą veikti, kubas
tekstūruojamas (bet vis dar be
           šešėlių)
Po dviejų trijų dienų - kubas
tekstūruojamas ir šešėliuojamas.
         (1400 eilučių)
Nusprendžiu, kad kodas
  betvarkė, ir kad viską reikia
perrašyti, nes nebesuprantu kaip
       ir kas ten veikia.
Versijų kontrolės sistema -
padeda suskaldyti programą į
          gabalus.
Vienu metu reikia galvoti tik apie
    tas dalis kurias pakeitei.
Jei kažkas neveikia - visada gali
             grįžti.
Kaikurie iš jūsų jau naudojate
    VCS, tik labai prastą
mano_programa.c
mano_programa.c
mano_programa.old
mano_programa.c
mano_programa.old
mano_programa.old.old
mano_programa.old.old.old
mano_programa.c
mano_programa.old
mano_programa.old.old
mano_programa.old.old.old
mano_programa.oldest
mano_programa.c
mano_programa.old
mano_programa.old.old
mano_programa.old.old.old
mano_programa.oldest
mano_programa.veikianti
Patikėkite - tikra VCS leis tai
    daryti daug patogiau
Aš neišmokysiu jūsų kaip
naudotis kuria nors VCS
Bet duosiu kelis patarimus
kuriuos išmokau iš kolegų
Commit - operacija kuri padeda
  naujausią tavo programos
        versiją į VCS
Veikia - commitink!
Neveikia - necommitink!
Necommitink nesusijusių
 pakeitimų vienu metu!
Visada pažiūrėk ką pakeitei prieš
        commitindamas!
(kaip kitaip sužinosi ar necommitini
       nesusijusių pakeitimų)
Išmok skaityti diff'ą
diff --git a/vcs.txt b/vcs.txt
index 2952344..f139f3c 100644
--- a/vcs.txt
+++ b/vcs.txt
@@ -93,4 +93,8 @@ Visada pažiūrėk ką
pakeitei prieš commitindamas!

.page

+Išmok skaityti diff'ą
+
+.page
+
Fin!
Skaldyk darbą į nedidelius
         gabalus.
  (tai daryti dažnai sunku)
Neikit dirbti į kompanijas kurios
        nenaudoja VCS
Bet aš neturiu savo serverio,
  kaip man naudoti VCS?
http://github.com/
http://bitbucket.org/
http://launchpad.net/
Nesijaudinkite, niekam nereikia
jūsų kodo, ir niekas jo už pinigus
            neimtų ;)
Fin!

More Related Content

More from BarCamp Lithuania

Feedback after hackaton 2014, Kestutis Matuliauskas
Feedback after hackaton 2014, Kestutis MatuliauskasFeedback after hackaton 2014, Kestutis Matuliauskas
Feedback after hackaton 2014, Kestutis Matuliauskas
BarCamp Lithuania
 
Mokėjimai.lt/PaySera - the history and future, Kostas Noreika
Mokėjimai.lt/PaySera - the history and future, Kostas NoreikaMokėjimai.lt/PaySera - the history and future, Kostas Noreika
Mokėjimai.lt/PaySera - the history and future, Kostas Noreika
BarCamp Lithuania
 
What is Bitcoin? Why Spectrocoin?
What is Bitcoin? Why Spectrocoin?What is Bitcoin? Why Spectrocoin?
What is Bitcoin? Why Spectrocoin?
BarCamp Lithuania
 
Mobiliosios piniginės, Vaidas Adomauskas
Mobiliosios piniginės, Vaidas AdomauskasMobiliosios piniginės, Vaidas Adomauskas
Mobiliosios piniginės, Vaidas Adomauskas
BarCamp Lithuania
 
Connecty apskaita ir it guru
Connecty apskaita ir it guruConnecty apskaita ir it guru
Connecty apskaita ir it guru
BarCamp Lithuania
 
Ideapeople barcamp
Ideapeople barcampIdeapeople barcamp
Ideapeople barcamp
BarCamp Lithuania
 
Dalinam
DalinamDalinam
Gig Basket barcamp
Gig Basket barcampGig Basket barcamp
Gig Basket barcamp
BarCamp Lithuania
 
2wishme
2wishme2wishme
Ar skaitei
Ar skaiteiAr skaitei
Ar skaitei
BarCamp Lithuania
 
Equilibrium game
Equilibrium gameEquilibrium game
Equilibrium game
BarCamp Lithuania
 
Unity technologies on BarCamp Vilnius
Unity technologies on BarCamp VilniusUnity technologies on BarCamp Vilnius
Unity technologies on BarCamp Vilnius
BarCamp Lithuania
 
HackFwd introduction
HackFwd introductionHackFwd introduction
HackFwd introduction
BarCamp Lithuania
 
Noriu Noriu Noriu
Noriu Noriu NoriuNoriu Noriu Noriu
Noriu Noriu Noriu
BarCamp Lithuania
 
HackFwd introduction
HackFwd introductionHackFwd introduction
HackFwd introduction
BarCamp Lithuania
 
Antigravity ventures startups kaunas (1)
Antigravity ventures startups kaunas (1)Antigravity ventures startups kaunas (1)
Antigravity ventures startups kaunas (1)BarCamp Lithuania
 
Projektas2011 barcamp-kaunas7-2010
Projektas2011 barcamp-kaunas7-2010Projektas2011 barcamp-kaunas7-2010
Projektas2011 barcamp-kaunas7-2010BarCamp Lithuania
 

More from BarCamp Lithuania (20)

Feedback after hackaton 2014, Kestutis Matuliauskas
Feedback after hackaton 2014, Kestutis MatuliauskasFeedback after hackaton 2014, Kestutis Matuliauskas
Feedback after hackaton 2014, Kestutis Matuliauskas
 
Mokėjimai.lt/PaySera - the history and future, Kostas Noreika
Mokėjimai.lt/PaySera - the history and future, Kostas NoreikaMokėjimai.lt/PaySera - the history and future, Kostas Noreika
Mokėjimai.lt/PaySera - the history and future, Kostas Noreika
 
What is Bitcoin? Why Spectrocoin?
What is Bitcoin? Why Spectrocoin?What is Bitcoin? Why Spectrocoin?
What is Bitcoin? Why Spectrocoin?
 
Mobiliosios piniginės, Vaidas Adomauskas
Mobiliosios piniginės, Vaidas AdomauskasMobiliosios piniginės, Vaidas Adomauskas
Mobiliosios piniginės, Vaidas Adomauskas
 
Connecty apskaita ir it guru
Connecty apskaita ir it guruConnecty apskaita ir it guru
Connecty apskaita ir it guru
 
Ideapeople barcamp
Ideapeople barcampIdeapeople barcamp
Ideapeople barcamp
 
Dalinam
DalinamDalinam
Dalinam
 
Gig Basket barcamp
Gig Basket barcampGig Basket barcamp
Gig Basket barcamp
 
2wishme
2wishme2wishme
2wishme
 
Ar skaitei
Ar skaiteiAr skaitei
Ar skaitei
 
Equilibrium game
Equilibrium gameEquilibrium game
Equilibrium game
 
Unity technologies on BarCamp Vilnius
Unity technologies on BarCamp VilniusUnity technologies on BarCamp Vilnius
Unity technologies on BarCamp Vilnius
 
7 min pitch
7 min pitch7 min pitch
7 min pitch
 
HackFwd introduction
HackFwd introductionHackFwd introduction
HackFwd introduction
 
Noriu Noriu Noriu
Noriu Noriu NoriuNoriu Noriu Noriu
Noriu Noriu Noriu
 
HackFwd introduction
HackFwd introductionHackFwd introduction
HackFwd introduction
 
Antigravity ventures startups kaunas (1)
Antigravity ventures startups kaunas (1)Antigravity ventures startups kaunas (1)
Antigravity ventures startups kaunas (1)
 
Projektas2011 barcamp-kaunas7-2010
Projektas2011 barcamp-kaunas7-2010Projektas2011 barcamp-kaunas7-2010
Projektas2011 barcamp-kaunas7-2010
 
Hub kaunas barcampui
Hub kaunas barcampuiHub kaunas barcampui
Hub kaunas barcampui
 
Bar camp go-global
Bar camp go-globalBar camp go-global
Bar camp go-global
 

Naudokite versijų kontrolės sistemas