Utilizând solicitările de tragere ca recenzii de cod

Atunci când dezvoltăm software-ul, controlul sursei ne face viața mult mai ușoară. De la urmărirea schimbărilor noastre la introducerea colaborării prin coduri, aceasta ne ajută să creștem productivitatea. În plus, faptul că există un număr de instrumente diferite disponibile - Subversion, Perforce, Mercurial și așa mai departe - o face și mai bună oferindu-ne opțiuni din care să alegem.

În această serie, ne uităm în mod special la Git și folosind Bitbucket și cum ne pot ajuta în munca noastră zilnică. În acest articol, vom fi în mod special axați pe utilizarea Bitbucket pentru discuții despre caracteristici, urmărirea erorilor, etichetarea lansării și multe altele.

Una dintre caracteristicile majore ale lui Git - și, prin urmare, Bitbucket - este ideea de a solicita tragerea. În acest articol, vom analiza solicitările de tragere și modul în care acestea nu numai că ne vor beneficia de un punct de control al sursei, ci și dintr-un punct de vedere de peer review.

Un primer de tragere

Când cineva emite o solicitare de tragere în proiectul dvs., înseamnă că ei cer să aibă codul lor fuzionat în baza de cod. Asta este, ei solicită să vă trageți codul în proiect.

Dar noi, ca întreținători, avem capacitatea de a revizui, de a testa și de a îmbina schimbările introduse de cerere. Nu faceți nici o greșeală: jucăm un rol foarte important în a decide dacă cererea specifică respectă atât standardele, cât și obiectivele software-ului nostru.

Dacă se constată o discrepanță, putem solicita contribuitorului să actualizeze solicitarea de tragere fie prin curățarea codului, rezolvarea oricărei probleme rămase nesoluționate sau prin îmbunătățirea calității generale a codului. Pe de altă parte, este posibil să respingem și solicitarea de tragere dacă decidem că nu îndeplinește criteriile pe care le considerăm necesare pentru proiect.

Pentru a emite o solicitare de tragere, o persoană trebuie să primească mai întâi codul de bază al proiectului inițial. Aceasta înseamnă că ei iau un instantaneu al codului în starea sa actuală, creează un set de modificări și apoi angajează modificările la copia personală a codului. De acolo, dezvoltatorul cere ca schimbarea să fie trasă în depozitul inițial.

După cum am menționat anterior, solicitările de tragere pot consta în orice număr de lucruri:

  • Corectarea erorilor
  • Traduceri
  • Caracteristici adăugate
  • Adăugarea sau modificarea documentației
  • … si asa mai departe

Folosit de echipe de toate dimensiunile - atât managementul intern, cât și cel distribuit, este o parte importantă a dezvoltării software-ului. Lucrul este că, atunci când este vorba de lucru cu sistemele de control sursă, utilizatorii au roluri variate de permisiuni.

Adică atunci când vine vorba de menținerea unui depozit, unii dezvoltatori vor avea acces numai în citire, în timp ce alții au atât acces la citire cât și la scriere. Iar cei cu acces la scriere sunt cei care sunt responsabili pentru menținerea solicitărilor de tragere.

Bitbucket și cererile de tragere

În această serie de articole, analizăm modul în care Bitbucket poate îmbunătăți fluxul de lucru al echipei atunci când vine vorba de dezvoltarea de software. Așa cum am discutat anterior, Bitbucket le permite oamenilor să participe la proiect atât prin comiterea codului, prin revizuirea solicitărilor de tragere și prin efectuarea de fuziuni a cererilor menționate.

Una dintre cele mai frumoase caracteristici ale Bitbucket este că vă permite să adăugați mai mulți recenzori la o singură solicitare de tragere, care apoi poate aproba (sau respinge) cererea. Aceasta, la rândul său, îi dă celor care întrețin depozitului capacitatea de a revizui calitatea codului specificat în solicitarea de tragere.

Poate că vor saluta adăugările la proiect, poate că nu. Indiferent de situație, Bitbucket oferă administratorilor instrumentele necesare pentru a oferi feedback cu privire la orice solicitare de tragere dată.

În cele din urmă, Bitbucket acceptă comentarea inline a fiecărei solicitări de tragere, ceea ce face mult mai ușor discutarea unei anumite linii, blocuri sau module de cod.

În ansamblu, această abordare face mult mai ușor să se stabilească dacă o cerere de tragere ar trebui sau nu să fie fuzionată, dacă ar trebui respinsă sau care ar trebui să fie modificate domeniile arhivelor înainte de a fuziona cererea.

Aflați prin exemplu

Fork un depozit

Pentru a începe, accesați tabloul de bord al unui proiect în browserul dvs. Web, apoi faceți clic pe Furculiţă la furculița depozitului.


Apoi, veți primi un formular care vă permite să specificați un nume personalizat și o descriere particularizată. Aveți, de asemenea, posibilitatea de a seta vizibilitatea și permisiunile magaziei printre alte caracteristici.

Dacă sunteți responsabil pentru codul care va fi scris și doriți să aveți acces la instrumente suplimentare pentru a facilita lucrul cu o echipă în jurul codului, selectați Management de proiect opțiune de la elementul de interfață corespunzător.

După ce faceți clic pe Depozit de reparații , veți obține cea mai recentă versiune a bazei de date a proiectului și o veți pune la dispoziție într-un depozit care este propriu. Pentru a verifica codul pe mașina dvs. locală, puteți utiliza un client Git, cum ar fi SourceTree, sau puteți face acest lucru din linia de comandă prin emiterea următoarelor comenzi din directorul local unde este stocat proiectul dvs.:

$ cl clone https: //[email protected]/yourusername/reponame.git

Rețineți că adresa URL specificată mai sus este vizibilă în tabloul de bord al depozitului din tabloul de bord al Bitbucket.

După verificarea codului, puteți începe să lucrați la proiectul de pe mașina dvs. locală. Pe măsură ce introduceți modificări, veți dori să le angajați în depozit. Pentru a face acest lucru, vă pregătiți mai întâi munca și apoi vă angajați munca în depozit.

Faceți schimbările

În acest moment, suntem gata să ajungem la treabă. Ce înseamnă acest lucru va varia în funcție de natura proiectului dvs.: Poate că lucrați la închiderea unui bug, poate refactorizați o funcție sau poate adăugați o caracteristică.

Indiferent de situație, după efectuarea modificărilor, puteți emite un angajament în depozit. Aceasta înseamnă că luați fișierele pe care le-ați lucrat și le combinați într-o singură colecție de modificări numită set de modificări. Seturile de schimbări sunt, în mod normal, însoțite de un mesaj scurt care explică ce a fost schimbat și de ce.

Când comiți cod, cel puțin la început, nu împingeți nimic la depozit. Cu alte cuvinte, dacă aceasta este prima dvs. comitere, atunci codul dvs. nu este de fapt stocat online în Bitbucket. În schimb, modificările există numai pe mașina dvs. locală. Odată ce ați efectuat apăsarea inițială, codul există apoi în depozit.

În cele din urmă, controlul sursei oferă o modalitate de a menține un istoric curat al schimbărilor dvs., precum și o modalitate ușoară de a reveni la un moment dat.

Eliberați o solicitare de tragere

Odată ce ați împins o schimbare la depozitul la distanță (fie prin intermediul unui client, fie prin linia de comandă), sunteți gata să inițializați o solicitare de tragere. Aceasta înseamnă că sunteți gata să luați codul pe care l-ați împins în furculița codului și întrebați pe cei care au inițiat-o dacă vor fuziona codul în proiectul lor.

A face acest lucru în cadrul aplicației Bitbucket este ușor. Pur și simplu du-te la tabloul de bord al depozitului forked, apoi faceți clic pe Creați o cerere de tragere.

Apoi, vi se va oferi o interfață care vă va permite să creați solicitarea de tragere. Solicitarea va include depozitul dvs., magazia originală și un titlu și o descriere.

De aici, selectați depozitul dvs. ca depozit de surse și depozitul de coduri originale al codului ca depozit țintă. Poate fi necesar să le schimbați în tabloul de bord, în funcție de cerințele dvs..

De exemplu, dacă ați denumit copia codului "develop" când emiteți comanda "git add remote" mai devreme, dar codul de bare original folosește cuvântul "master", atunci va trebui să vă asigurați că ați selectat valorile corecte.

În cele din urmă, aici Bitbucket vă permite să adăugați recenzii la o cerere de tragere. Așa cum am menționat mai devreme, acest lucru face mult mai ușor să atragă atenția întreținătorilor de proiecte pentru ca ei să poată revizui munca dvs., să ofere orice comentarii pe care le pot avea și să combine (sau respingă) cererea dvs..

Urmați cu solicitarea de tragere

Bitbucket actualizează automat cererea dvs. de tragere când introduceți codul în directorul sursă, astfel încât recenzentul proiectului să primească întotdeauna cel mai recent cod pe care îl poate trage. 

Atunci când recenzorul solicită o schimbare specifică, acesta poate pur și simplu să împingă modificările solicitate în copia dvs. de depozit - adică repozitorul cu furcă.

Gestionarea solicitărilor de tragere

Dacă mențineți un depozit care primește cereri de tragere de la alții, atunci este posibil să observați că magazia dvs. va primi atât o notificare în tabloul de bord al aplicației Bitbucket, cât și în e-mailul dvs..

În plus, dacă ești recenzent, vei primi și o notificare și un e-mail. Pentru a gestiona toate solicitările de tragere primite, faceți clic pe link-ul "Pull requests" și selectați solicitarea de tragere cu care doriți să lucrați.

După cum puteți vedea, Bitbucket oferă o interfață curată unde puteți discuta și revizui cererile de tragere. Atât administratorii, cât și telespectatorii pot respinge, fuziona sau solicita efectuarea de lucrări suplimentare pe o anumită cerere de tragere.

Presupunând că aveți o cerere care este gata să fie îmbinată, faceți clic pe opțiunea specifică pentru a face exact acest lucru. Dacă se întâmplă să lucrați cu mai mulți recenzori, atunci Bitbucket clarifică, de asemenea, cine a aprobat solicitarea aplicând un marcaj pe avatarul lor. Evident, cu cât sunt mai multe controale care apar în cadrul recenzorilor, cu atât este mai probabil ca cererea să fie gata de fuzionare.

Dar ce se întâmplă dacă se realizează o fuziune a solicitării de tragere? În acest moment, trebuie făcută o fuzionare manuală (care este o parte comună a gestionării codului sursă, deși în afara domeniului de aplicare al acestui articol), după care codul va fi angajat în depozit.

Concluzie

În mod evident, controlul asupra surselor oferă numeroase avantaje echipelor; totuși, solicitările de tragere sunt o caracteristică puternică care ușurează contribuția la un proiect și de a avea alții o evaluare a codului dvs., comentați-o și îmbunătățiți-l înainte de a-l îmbina în codul de bază.

Numai acest lucru vă poate ajuta să deveniți un dezvoltator mult mai bun pe măsură ce învățați din experiența altor dezvoltatori care mențin proiectul mai amplu. Dacă nu sunteți deja, încercați să folosiți solicitări de tragere în fluxul de lucru pentru a vă îmbunătăți codul și pentru a obține feedback de la alții.

.

Cod