PC Laborator 2.1 (opțional)

De la WikiLabs
Jump to navigationJump to search

Obiective

  • definirea noțiunii de Version Control System;
  • utilizarea unui sistem de Version Control: Git.

Sistem de control al versiunii

Gândiți-vă la următorul scenariu: lucrați la un proiect într-un limbaj de programare sau de descriere hardware; acest proiect este mare și nu poate fi terminat într-o zi, prin urmare vă faceți timp și lucrați cate o oră în fiecare zi. Apar următoarele situații:

  • peste două săptămâni vă dați seama că unele lucruri pe care le-ați adăugat în program nu sunt necesare, deci ați vrea să vă întoarceți la o versiune mai veche - este nevoie de un sistem care să țină o istorie a modificărilor și să permită oricând întoarcerea la o versiune anterioară;
  • proiectul e pe echipe, deci la el lucrează trei persoane; fiecare editează unul sau mai multe fișiere, fiind posibil ca doi membri ai echipei să editeze același fișier - e nevoie de un sistem care să poată să centralizeze modificările și să trateze situația în care același fișier e modificat de doi ingineri;
  • unul din membrii echipei găsește o problemă și dorește să vadă cine și ce a modificat în zona respectivă de cod și care a fost scopul modificării - este deci nevoie de un sistem care să permită documentarea fiecărei modificări pe perioada dezvoltării proiectului și vizualizarea acestor modificări;
  • după documentare, teser-ul dorește să poată nota problema, atribuid-o unui membru al echipei pentru rezolvare - este nevoie de un sistem care să permită înregistrarea și documentarea erorilor în scopul rezolvării;

Toate aceste cerințe sunt adresate de sistemele de control al versiunii, acestea pot:

  • ține evidența modificărilor și permite întoarcerea la o versiune mai veche;
  • permite ramificarea dezvoltării în mai multe direcții și unificarea ulterioară a acestor ramuri;
  • sincroniza modificările fiecărui utilizator cu un depozit central pentru a putea fi accesate de ceilalți membri ai proiectului;

Există mai multe sisteme de control al versiunii:

  • Pe model client - server:
    • Concurrent Versions System (CVS) - open Source
    • Subversion (SVN) - open source
    • Perforce – Proprietar dar poate fi folosit gratis în proiecte open-source
  • Pe model distribuit:
    • Git - creat de Linus Torvalds pentru dezvoltarea kernel-ului de Linux - open source
    • BitKeeper – folosit pentru dezvoltarea kernel-ului de Linux între 2002 și aprilie 2005.

În continuare vom prezenta conceptele cele mai importante și funcționarea sistemului Git.

Git - repository local