PC Laborator 2.1 (opțional)
De la WikiLabs
Versiunea din 27 septembrie 2015 13:29, autor: Rhobincu (discuție | contribuții)
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.