Neįsivaizduoju profesionalaus IT projektų vystymo be kodo kontrolės priemonių. Nesvarbu, ar dirbi prie mažo asmeninio projektėlio, ar didelės komercinės taikomosios programos, kodo kontrolė yra tai, kas tau padės suvaldyti krūvas nuolat besikeičiančio kodo tarp daugelio kūrėjų. Tai yra, taip sakant, ATŠAUKTI funkcionalumas programavimo procese.

How to manage picture
Kodo kontrolė turi talpyklę (angl. repository), kur laikomi kuriami failai ir kūrimo proceso duomenys. Kiekvienas kūrėjas dirba su tos talpyklės kopija. Standartiškai darbas kontroliuojant kodą vyksta taip:

  1. Pasigriebi failus iš talpyklės į savo vietinę kopiją. Šis procesas vadinamas “check-out” (pirmą kartą) arba “update” (kitus kartus);
  2. Redaguoji failus;
  3. Pasitikrini statusą, kokius failus pakeitei. Jei buvo sukurta naujų failų, juos gali pridėti į kodo kontrolę arba įrašyti į ignoruojamų failų sąrašą, kad statuso raporte jie daugiau nebepasirodytų;
  4. Tuomet tu patvirtini pasikeitimus ir jie iš tavo kopijos nusiunčiami į talpyklę. Šis procesas vadinamas “commit” arba “check-in”.

Sulig kiekvienu patvirtinimu, kodo kontrolė sukuria naujas redaguotų failų versijas. Pakeitimų patvirtinimas sugeneruoja naują reviziją (angl. revision) su automatiškai didėjančiu numeriu. Jei padarai klaidą, tu visada gali sugrįžti (angl. rollback) į buvusią kūrimo būseną pagal revizijos numerį arba datą, kada patvirtinimas buvo padarytas. Su kiekvienu patvirtinimu tu gali (ir turėtum) parašyti komentarus, kas buvo pakeista tai revizijai, tam kad vėliau būtų kur kas lengviau surasti reviziją į kurią galėtum sugrįžti. Taip pat kodo kontrolė dažniausiai leidžia pažiūrėti to paties failo pakeitimus tarp dviejų revizijų.

Talpyklė gali būti sukonfigūruota arba tame pačiame kompiuteryje arba nutolusiame serveryje. Failai gali būti kontroliuojami tiek vienam žmogui, tiek dideliam kūrėjų tinklui.

Kai pora kūrėjų modifikuoja tą patį failą, kodo kontrolė bando apjungti (angl. merge) pakeitimus faile. Jei tai nėra akivaizdu, parodomas konfliktas ir kūrėjai turi jį išspręsti savo galva. Kodo kontrolė nepriima jokių konfliktų į talpyklę. Jie turi būti ištaisyti lokaliose kopijose prieš galimybę patvirtinti pakeitimus.

Kai projektas kuriamas daugelio žmonių, yra galimybė patikrinti, kas padarė kokius pakeitimus. Taip pat yra kitų kodo kontrolės funkcionalumų, kaip kad visų failų dabartinėje revizijoje žymėjimas (angl. tagging) tam tikra simbolių eilute (pvz., laidos numeriu); skirtingų to paties projekto atšakų (angl. branch) kūrimas, arba dviejų skirtingų atšakų apjungimas (angl. merging) į vieną.

Tarp galybės kodo kontrolės sistemų aš mėgstu Subversion (), kadangi ji pilnai atidirbta, patogi, stabili, o taip pat – nemokama.

Studijoje, kur dirbu, naudojam CreativeCityBerlin ir kitiems projektams su Django. Talpyklė yra apsaugotam ir kiekvieno naudotojo autentikacijos prašančiame serveryje. Naudojam įvairius klientus skirtingoms platformoms. Aš dažniausiai dirbu su standartiniu komandinės eilutės klientu mano kūrimo aplinkoj (ant Mac OS X) ir viešame serveryje (ant Linux), kuriame laikomos svetainės. Kai kurie iš mūsų naudoja ZigVersion klientą Mac’ui. Kai kurie – Windows’ams.
Multiple users screenshot
Kaip mažą žingsnelį tolimesnio Halmos žaidimo ir kitų projektų kūrimo link, įdiegiau TortoiseSVN ir savo asmeniniame laptope. Nesu vienintelis asmuo, kuris gali patvirtinti, jog yra pats patogiausias klientas Žemėje šiuo metu.

Jis yra pilnai integruotas į Windows Explorer ir yra labai intuityvus. Visos kodo kontrolės funkcijos yra pasiekiamos per dešiniojo mygtuko meniu. Failų statusai yra pažymėti specialiais indikatoriais prikabintais prie failų piktogramų (ikonėlių).
TortoiseSVN screenshot
Įdiegęs savo kompiuteryje, susikūriau talpyklę savo Halmos žaidimui lokaliai. O taip pat norėdamas pratestuoti susikūriau viešą talpyklę Google kode savo Klãvos projektui.

Jei dar nepradėjai naudoti jokio kodo kontrolės įrankio, primygtinai siūlau tai padaryt kuo anksčiau. Versijų kontrolę taip pat sėkmingai gali naudoti ne tik IT kūrėjai, bet ir rašytojai, skaitmeninio meno atstovai ar kompozitoriai.

Originalus straipsnis: “Valdyk savo kodą su Subversion“.

Panašūs straipsniai


“Valdyk savo kodą su Subversion” komentarų: 10


  1. Smaguma būna, kai prasideda kodo konfliktai. Bent kol išmoksti juos suvaldyti.
    O dar smaguma būna kai reikia daryti “merge” tarp kelių šakų.

  2. Tadas

    Na man tai labai patinka tokia paskaitele apie git http://youtube.com/watch?v=4XpnKHJAok8 ir kaip yra suvaromi visi cvs ir svn.


  3. Na ką aš galiu pasakyti - puiki paskaitą apie savo produktą. Mes dažnai matome, kaip PĮ kūrėjai muša sau į krūtinę dešinių kulnų ir riekia kad būtent jų kūrinys yra geriausias. Tuo tarpu mums reikia mokėti ne tik aklai eiti pagal jų nurodimus, bet ir mokėti rinktis sau patogesnį produktą.

    Subversion yra puiki programinė įrangą, kuria asmeniškai irgi naudoju ir asm. reikmėm ir darbe - ir esu visai patenkintas. Svarbų ne technologijos - svarbų žmonės, kurie dirba.

    Norint dirbti su “distributed version control system” reikia įpročio, kurio ne visi turi, todėl jis ne visada tinka. Dar svarbu yra patogus įrankiai. Pvz.: jai ne TortoiseSVN - aš niekada nebūčiau įvaldęs svn (komandinei eilutei) bei svn serverio valdymo.

    Be to Lietuvos mastu nėra tokiu didelių projektų ir įmonių, kurioms tokia technologija tiktu. Mes visi labai įpratę prie to kad yra “trunk”, kad yra “branches” ir kad yra kažkur tas pagrindinis katalogas, nuo kurio viskas priklauso.

  4. Dalius

    Nesutinku visiškai, kad distributed sistemos tinkamos tik dideliems projektams. Aš vieną tokią sistemą naudoju asmeniniams projektams ir tai daug geriau už SVN’ą. Darbe deja (tikrai miližinškam projektui) tenka naudoti CVS’ą (net ne SVN).

  5. linuxr

    visiškai pakanka vistos galimybių


  6. linuxr , gal aš ir nesu susipažinęs su Vista, bet prie ko čia vistos galimybės ir Subversion?

  7. mercurial

    Nauja CSS, veikia kitokiu principu. Paskaitykit, kam aktualu.
    http://www.selenic.com/mercurial/wiki/

  8. eMeR

    svn’a naudojame jau daugiau nei 2 metus. Kelis kartus kartus buvo sugriuvus repositorija. Slykstus reikalas, kai po to reik priverst vel veikt. O seip - puikus irankis. O dar ir Applas pasirupino developeriais - itrauke svn’a by default i Leoparda.

  9. asterisk

    Netgi pixel svn’u atnaujinamas. Pora minučių ir atnaujinta, turbūt užsiknisčiau atnaujindamas viską rankom.

  10. aur1mas » Blog Archive » Projektas (it.sektorius.info) - įžanga

    […] Valdyk savo kodą su Subversion -įžanginis straipsnis žaliems [lt]. […]

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.