Documente Academic
Documente Profesional
Documente Cultură
Raport
Lucrarea de laborator Nr.1
la disciplina: Programarea n Reea
Tema: Versionarea codului surs utiliznd GIT
A efectuat: st.gr.
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.
Modelul distribuit (ex: GIT) nu exist un server central, procesul de sincronizare desfurndu-se
la nivel peer-to-peer.
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;
checkout -aducerea pe masina locala a versiunii de pe server, sub forma unei working copy
commit message - un mesaj asociat unei aciuni commit care descrie schimbrile fcute n noua
versiune.
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.