Sunteți pe pagina 1din 5

Ministerul Educaiei al Republicii Moldova

Departamentul Ingineria Software i Automatica

Raport
Lucrarea de laborator Nr.1
la disciplina: Programarea n Reea
Tema: Versionarea codului surs utiliznd GIT

A efectuat: st.gr.

A verificat: conf. univ., dr. Ciorb Dumitru

Chiinu 201
Obiectiv:
Crearea unui repozitoriu distant, localizat de serviciul gitlab.utm.md, i sincronizarea tuturor
modificrilor efectuate asupra repozitoriului local.

Scop:
Lucrarea de laborator are ca scop studiul i nelegerea principiilor de fucionare i utilizare a
sistemului de distribuit de control al versiunilor numit GIT.

Noiuni teoretice
Sisteme de versionare (VCS, Version Control Systems-eng) sevresc la gestionarea versiunilor
multiple ale fiierelor incluse ntr-un proiet. Fiecare modificare efectuat asupra elementului din proiect
se memoriazeaz mpreun cu autorul schimbrii. Important de men ionat c n orice moment de timp se
poate reveni la o versiune anterioar a entitii.
Motivaia principal const n posibilitatea ca diferii membri ai echipei, afla i eventual n spa ii
geografice ndepartate, s poat lucra simultan la proiect, urmnd ca, la final, modificarile lor s fie
reunite n noi versiuni ale proiectului. De asemenea, exist i alte avantaje. Cnd se observ un bug, se
poate reveni la o versiune anterioara, n vederea determinrii momentului introducerii acestuia n
program. n acelai timp, se poate urma o dezvoltare pe ramuri (branches), n care se lucreaz, n paralel,
la multiple versiuni ale proiectului - de exemplu, una n care se dore te nlturarea bug-urilor, iar cealalt,
n care se urmarete adugarea noilor funcionaliti, naintea lefuirii celor existente.
Exist dou modele de VCS-uri:
centralizat (ex: SVN): codul surs este situat pe un server central, de unde clien ii pot
obine variante de lucru pe maina locala (working copy). Dup efectuarea local a
modificrilor, dezvoltatorul solicit actualizarea variantei de pe server.

distribuit (ex: Git): nu exist un server central, procesul de sincronizare desfurndu-se la


nivel peer-to-peer.

Figura 1. VCS centralizat Figura 2. VCS distribuit


Avantajele utilizrii modelului SVN sunt portabilitatea i suportul de integrare cu numeroase IDE-uri.

Principalele dezavantaje ale utilizrii modelului centralizat SVN sunt:


dependena de accesul la server;
mentenana i backup-urile serverului;
dificulti de comunicare cu serverul;
dificultatea de a utiliza instrumentele pentru gestionarea ramurilor i de unificare a
ramurilor.

Modelul distribuit (ex: GIT) nu exist un server central, procesul de sincronizare desfurndu-se
la nivel peer-to-peer.

Principalele beneficii ale sistemelor GIT i Mercurial sunt:


urmrirea schimbrilor mai avansat i mai detaliat, lucru care duce la mai pu ine
conflicte;
lipsa necesitii unui server, toate operaiile cu excepia schimbului de informa ii ntre
repozitorii se realizeaz local;
operaiile pentru gestionarea ramurilor i de unificare a ramurilor (prin intermediul
comenzii merge) sunt mai sigure, i prin urmare folosite mai des;
rapiditatea marea a operaiilor datorit lipsei necesitii comunicrii cu serverul.

Dezavantajele utilizrii sistemelor GIT i Mercurial:


modelul distribuit este mai greu de neles;
reviziile nu sunt numere incrementale, lucru care le face mai greu de refereniat;
riscul apariiei de greeli este mare dac modelul nu este familiar.

Chei SSH
SSH este un protocol de reea care asigur o comunicare securizat a datelor ntre dou sta ii
(calculatoare, tablete, telefoane sau alte dispozitive dintr-o reea). Pentru a asigura confidenialitatea i
integritatea informaiilor interschimbate, SSH se folosete de criptarea cu chei asimetrice. Criptografia
asimetric este un tip de criptografie care utilizeaz o pereche de chei: o cheie public i o cheie privat.
Un utilizator care deine o astfel de pereche i public cheia public astfel nct oricine dorete s o poat
folosi pentru a i transmite un mesaj criptat. Numai deintorul cheii secrete (private) este cel care poate
decripta mesajul astfel criptat.Utilizatorul deine o pereche de chei: una public i una privat. n timp ce
cheia public se trimite staiei de la distan (eng. remote) cu care se dorete comunicarea, cea privat
rmne tot timpul pe staia local i trebuie protejat de public. Cheia public trebuie trimis sta iei de la
distan, pentru c aceasta s o poat folosi la decriptarea datelor primite n format securizat.

Terminologie
repository - pe server, conine ierarhia de fiiere i informaiile de versiune;

working copy - varianta local, obinuta de la server, pe care se fac modificrile;

revision - o versiune a unui document. (v1, v2, v3...).

checkout -aducerea pe masina locala a versiunii de pe server, sub forma unei working copy

update/pull:actualizarea repozitoriului local n funcie de modificrile survenite, intre timp, pe


server. Se aduc doar fiierele modificate;

commit - nregistreaz o nou versiune a fiierului (fiierelor) modificat n repozitoriu.

commit message - un mesaj asociat unei aciuni commit care descrie schimbrile fcute n noua
versiune.

changelog - o list a versiunilor (commit-urilor) unui fiier/proiect de obicei nsoit de mesajele


asociate fiecrui commit.

diff: Afieaz diferenele dintre dou versiuni a unui fiier sau dintre fiierul modificat local (pe
working copy) i o versiune de pe repository.

revert -renunarea la ultimele modificri (locale) fcute ntr-un fiier din working copy, i
revenirea la ultima versiune aflat n repozitoriu sau la o versiune la alegere.

branch - creeaz o copie a unui fiier/proiect pentru modificri n paralel fr a afecta starea
actual a unui proiect.

merge - aplic ultimele modificri dintr-o versiune a unui fiier peste alt fiier;

conflict - situaia n care un merge nu se poate executa automat i modificrile locale sunt n
conflict cu modificrile din repozitoriu.

resolve: rezolvarea (de obicei manual) a conflictelor aprute ntr-un fiier dup un merge.

Maven
Maven este un sistem de construire i managment al proiectelor, scrise n Java. Face parte din
proiectele gzduite de Apache Software Foundation. Este un tool source care este larg utilizat att de
majoritatea proiectelor Java Open Source, ct i de altele.

Ce este Maven? Cea mai mare parte a utilizatorilor Maven vor spune c Maven este un instrument
pentru build, n timp ce definiia de pe pagina oficial a proiectului Apache Maven
http://maven.apache.org/ spune c Maven este un instrument pentru managment al proiectelot. Un
instrument pentru build se axeaz n principal pe procesare, compilare ambalare (packaging), testare i
distribuie. Un instrument pentru managment, cum ar fi Maven, n plus fa de capacit ile de build pe
care le are, i care sunt cu mult mai simple i uoare n folosire, mai prevede de asemenea i un ciclu de
via al proiectului, faciliteaz comunicarea ntre membrii echipei de lucru prin oferirea unui interfe e
comune, si multe alte faciliti.

Structura proiectului Maven i coninutul sunt declarate ntr - un fiier XML, pom.xml denumit ca
Project Object Model (POM), care este unitatea fundamental a ntregului sistem Maven.

S-ar putea să vă placă și