Atunci când colaborăm cu alte persoane la un același proiect este necesară folosirea unui sistem de versionare a surselor. Acesta ajută pentru a putea colabora la distanță și rezolvă problemele de partajare ale acelorași surse. Chiar și în cazurile în care suntem singurul dezvoltator al unui proiect, versionarea este indicată pentru că:
Pentru PA propunem folosirea unui sistem de versionare numit git
. Acesta este un sistem distribuit, open-source, care se comportă foarte bine în practică.
Facultatea de Automatică și Calculatoare pune la dispoziție instanța GitLab (hosting), accesibilă tuturor studenților și membrilor facultății. Autentificarea se face pe baza contului de pe site-ul de cursuri.
Dashboard-ul
user-ului autentificat.Profile settings
(dreapta-sus)Profile
. Lăsați-le pe cele de pe curs.cs (adresa de e-mail fiind cea de stud.acs.upb.ro
)Design
)
Profile settings
foarte important este adăugarea unei chei SSH.
$ ssh-keygen
Profile settings
, pagina SSH keys
de pe GitLab va trebui să adăugați această cheie astfel:Add key
.Key
Odată autentificați pe GitLab, din Dashboard
în partea stângă apare următorul meniu:
Projects
: aceasta este pagina de gestionare a proiectelor. Aici puteți vedea toate proiectele în care sunteți implicat: fie ca owner, fie ca viewer/guest, fie ca developer.Activity
: care arată activitatea voastră: dacă v-ați alăturat unui nou proiect, dacă ați creat un nou proiect etc.Groups
: gestionarea grupurilor și vizualizarea grupurilor existente.Milestones
: gestionarea pașilor importanți ce țin de proiectele în care sunteți implicat.Issues
: posibile probleme active într-unul din proiectele voastre.Merge Requests
: oferă posibilitatea combinării branch-ului default (master-ului) cu un altul (în cazul rezolvării unui bug sau adăugării unui feature).Snippets
: bucăți de text ce pot fi făcute private sau publice.Help
: documentație GitLab.Căpitanul echipei va crea un nou proiect în felul următor:
New project
(este un +
în dreapta-sus, lângă butonul de Profile settings
). 'teamname
' va fi înlocuit cu numele echipei proiectului).Create project
.Members
din cadrul acestui proiect (setting wheel, partea dreaptă)Reporter
Add users to project
Master
. (asigurati-vă ca s-au autentificat cel puțin o dată pe gitlab.cs.pub.ro)
Acum puteți naviga prin fișierele existente în proiect și prin commit-urile din proiect: Files
și Commits
.
Proiectul trebuie să conțină un fișier numit 'Team_Log'. În acest fișier, fiecare membru va menționa periodic modul cum a contribuit la proiect (îmbunatățiri în cod, idei noi investigate, testare, etc.). Puteți să mentionați orice contribuție, inclusiv abordări care nu au funcționat.
Nu impunem alte restricții suplimentare legate de structura proiectului.
Acum vă puteți clona local (puteți clona pe mai multe mașini, însă trebuie să aveți cheia privată corespunzătoare cheii publice de pe GitLab) acest repo folosind link-ul pentru SSH. Exemplu:
$ git clone git@gitlab.cs.pub.ro:prenume.nume/l2-pa-project-teamname.git $ cd l2-pa-project-teamname.git
Puteți adăuga fișiere noi:
$ vim test.c $ git add test.c $ git commit -m "my first C file" $ git push
Câteva tutoriale pentru folosirea Git sunt: