Programuotojo Remigijaus Jarmalavičiaus tinklaraštis

Informacinės technologijos, programavimo įrankiai, atviro kodo projektai, knygos ir kiti programuotojo straipsniai.

Kodėl tau reikia versijavimo sistemos?

Beskaitydamas IT straipsnius kuriuos randu įvairiuose šaltiniuose (o šaltinius būtinai pateiksiu kurią nors dieną savo blog’e) radau vieną tikrai nerealų straipsnį apie tai, kaip GIT versijavimo sistema gali padėti WEB dizaineriui. Pačios versijavimo sistemos aš nereklamuosiu (bent jau šitame straipsnyje). Taigi, šį straipsnį skiriu labiau programuotojams ir WEB dizaineriams.

Tikrai dažnai savo gyvenime esu susidūręs, kad žmonių versijavimas atrodo štai taip:

Ar tavo projektų katalogai nepanašūs?

Paveikslėlis kurį čia matote yra labai blogo versijavimo pavyzdys. Na, o dabar užduotis: kaip iš failų pavadinimo (bet ne sukūrimo datos) nuspręsti, kuri versija yra prieš paskutinė? Mane asmeniškai juokas suėmė tokį paveiksliuką pamačius.

Taigi, pirmas dalykas, kodėl tau reikia versijavimo sistemas, kad išvengti nesusipratimų, kai klientams nusiunti ne tą katalogą. Naudodamas bet kurią versijavimo sistemą GIT, Mercurial, SVN arba CVS (kitų neminėsiu, savo praktikoje nenaudoju), tokių dalykų išvengsite. Žmogus naudojantis versijavimo sistemą visada turi tik naujausią projekto versiją, o jeigu jam reikia senesnės versijos viso projekto ar tik tam tikrų jo dalių, lengvai jas gali išsitraukti.

Ar vis dar programuojate savo kompiuteryje lokaliai, o po to atsidarę FTP “neužmetat” viso projekto ant viršaus? Aš asmeniškai, dar prieš pusmetį taip darydavau. Tada būdavo visko, pavyzdžiui:

  • “Nuostabus” klientas Ubuntu sistemoje gFTP ne visada įkeldavo failus, ir apie tai nepranešdavo, kad kažkas atsitiko;
  • Kartais atnaujindavau tik tam tikrus katalogus, ir visai nekaltai praleisdavau tuos katalogus, kurie irgi keitėsi;
  • Bandant įkelti duomenis, pasikeisdavo tam tikrų katalogų įrašymo teisės;
  • Serveryje esantis failas buvo naujesnis, nei pas mane lokaliai (kai pvz kartais kažką patvarkai darbe, pamatęs, jog neveikia).

Projekto programavimas komandoje tikrai nėra įmanomas be versijavimo sistemos, nes:

  • Reikės karts nuo karto komandos nariui gauti naujausią projekto versiją;
  • Kas apsaugos nuo to, kai keli programuotojai redagavo tam tikrą failą, eilutę?

Manau jokios IT įmonės Lietuvoje neprogramuoja nenaudodamos versijavimo sistemos. Na, o jeigu programuoja, tai atleiskit, sakyčiau…

Klausimas blogo skaitytojams: ar turėjote kokių nors dar nesusipratimų, kol nenaudojote versijavimo sistemos? O gal vis dar jos nenaudojate?

Naudingos nuorodos: