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ă:
Câteva exemple de sisteme de versionare sunt:
O scurtă analiză a acestora este Version control systems.
Pentru SO2 propunem folosirea git
din varii motive:
Așa cum am precizat anterior, Facultatea de Automatică și Calculatoare pune la dispoziție instanța GitLab, accesibilă tuturor studenților și membrilor facultății. Autentificarea se face pe baza contului de pe site-ul de cursuri.
Echipa de SO2 pune la dispozție un script pentru automatizarea creării unui repo privat pe GitLab și a unei clone locale. Astfel, un student nu va trebui să-și creeze singur proiectul în GitLab, ci doar va rula acest script.
Scriptul este disponibil pe GitHub, în repo-ul public dedicat temelor de SO2. Îl puteți descărca local folosind comanda:
wget https://raw.githubusercontent.com/systems-cs-pub-ro/so2-assignments/master/so2-create-repo.sh
Imaginea următoare prezintă pe scurt entitățile gestionate și acțiunile realizate de către script:
La prima rulare, scriptul va crea un repo privat pe GitLab și o clonă în directorul curent al mașinii unde a fost rulat. În acest moment repo-ul privat al studentului și clona de pe mașina sa vor fi copii fidele ale repo-ului public al temelor de SO2.
Inițial scriptul va instala pachetele necesare pentru a rula și va realiza autentificarea cu serverul de GitLab, cerând utilizatorului credențialele de pe curs.cs.pub.ro. Următorul pas este să ofere posibilitatea de a încărca pe GitLab o cheie publică pentru SSH; în cazul în care nu există vreuna pe mașina locală, scriptul va genera o pereche de chei RSA. La final, va adăuga asistenții de SO2 responsabili de teme ca observatori ai proiectului de pe GitLab.
La următoarele rulări scriptul va încerca să sincronizeze clona locală cu repo-ul public. Astfel, dacă echipa de SO2 face unele modificări în repo-ul public voi vă puteți actualiza clona locală rulănd scriptul.
Mai departe, puteți interacționa cu repo-ul vostru privat prin git: o operație push va trimite modificările voastre în repo-ul de pe GitLab.
Pentru mai multe informații despre script, urmăriți README-ul asociat repo-ului public de pe GitHub.
Câteva tutoriale pentru folosirea Git sunt: