Använda Pull Requests som kodrecensioner

När du utvecklar programvara gör källkontrollen våra liv så mycket enklare. Från att spåra våra förändringar för att introducera kodsamarbete bidrar det till att öka produktiviteten. Dessutom är det faktum att det finns ett antal olika verktyg tillgängliga - Subversion, Perforce, Mercurial, och så vidare - gör det ännu bättre genom att ge oss alternativ att välja mellan.

I denna serie tittar vi specifikt på Git och använder Bitbucket och hur de kan hjälpa oss i vårt dagliga arbete. I den här artikeln kommer vi att fokusera specifikt på att använda Bitbucket för funktionsdiskussion, felspårning, släpp taggning och mer.

En av de viktigaste egenskaperna hos Git - och därmed Bitbucket - är tanken på dragförfrågningar. I den här artikeln kommer vi att titta på dragförfrågningar och hur de inte bara gagnar oss från en källkontrollsynpunkt, utan också från en peer review-synvinkel.

En Pull Request Primer

När någon utfärdar en begäran om uppdrag i ditt projekt betyder det att de ber om att deras kod slås samman i kodbasen. Det vill säga de ber om att du drar sin kod till projektet.

Men vi, som underhållare, har möjlighet att granska, testa och sammanfoga de förändringar som infördes av begäran. Gör inget misstag: Vi spelar en mycket viktig roll för att bestämma om den specifika begäran uppfyller både standard och mål för vår programvara.

Om en skillnad upptäcks kan vi begära att bidragsgivaren uppdaterar dragförfrågan genom att antingen rensa upp koden, lösa eventuella utestående problem eller förbättra kodens allmänna kvalitet. Å andra sidan kan vi också avslå dragningsförfrågan om vi bestämmer att det inte uppfyller de kriterier som vi anser vara nödvändiga för projektet.

För att kunna utfärda en dragförfrågan måste en person först gaffla kodbasen för det ursprungliga projektet. Det innebär att de tar en ögonblicksbild av kodbasen i sitt nuvarande tillstånd, skapar en uppsättning ändringar och lägger sedan ändringarna i deras personliga kopia av koden. Därifrån begär utvecklaren att förändringen dras in i det ursprungliga förvaret.

Som tidigare nämnts kan dragförfrågningar bestå av ett antal saker:

  • Bug fixar
  • översättningar
  • Funktionstillägg
  • Tillägg eller modifiering av dokumentation
  • … och så vidare

Används av lag av alla storlekar - både internt och distribuerat - är källhanteringshantering en värdefull del av att utveckla programvara. Saken är när det gäller att arbeta med källkontrollsystem, användarna har olika roller av behörigheter.

Det vill säga när det gäller att behålla ett förråd, kommer vissa utvecklare att ha skrivskyddad åtkomst medan andra har både läs- och skrivåtkomst. Och de med skrivåtkomst är de som ansvarar för att upprätthålla dragförfrågningar.

Bitbucket och Pull Requests

I denna serie artiklar tittar vi på hur Bitbucket kan förbättra ditt lags arbetsflöde när det gäller att utveckla programvara. Precis som vi tidigare diskuterat tillåter Bitbucket att människor ska delta i projektet genom att begå kod till det, genom att granska dragförfrågningar och genomföra sammanslagningar av nämnda förfrågningar.

En av de finaste funktionerna i Bitbucket är att det låter dig lägga till flera granskare till en enda dragförfrågan, som sedan kan godkänna (eller avvisa) begäran. Detta ger i sin tur de som behåller förvaret möjligheten att granska kvaliteten på koden som anges i dragförfrågan.

Kanske kommer de att välkomna tilläggen till projektet, kanske inte. Bitbucket ger vad som helst fallet underhållarna de verktyg som behövs för att ge feedback på en viss dragförfrågan.

Slutligen stöder Bitbucket inline kommenterar varje dragförfrågan vilket gör det mycket lättare att diskutera en specifik rad, block eller kodmodul.

Sammantaget gör det här att det är mycket lättare att avgöra huruvida en dragförfrågan ska slås samman, om den ska avvisas eller inte, vilka områden av konceptet bör ändras innan sammanslagningen.

Lär dig genom exempel

Gaffel ett arkiv

För att komma igång, besök ett projektets instrumentpanel i din webbläsare och klicka sedan på Gaffel att gaffla förvaret.


Därefter kommer du att presenteras med ett formulär som låter dig ange ett anpassat namn och en anpassad beskrivning. Du har också möjlighet att ställa in förvarets synlighet och behörigheter bland andra funktioner.

Om du är ansvarig för koden som kommer att skrivas och vill ha tillgång till ytterligare verktyg för att göra det enklare att arbeta med ett team runt kodbasen, välj sedan Projektledning alternativet från motsvarande gränssnittselement.

Efter att ha klickat på Gaffelförråd knappen, kommer du fånga den senaste versionen av kodbasen för projektet och få den tillgänglig i ett repository som är helt eget. För att kolla koden till din lokala maskin kan du använda en Git-klient som SourceTree, eller så kan du göra det från kommandoraden genom att utfärda följande kommandon i den lokala katalogen där ditt projekt är lagrat:

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

Observera att webbadressen som vi har angett ovan är synlig i instrumentpanelen i ditt förråd i Bitbucks instrumentbräda.

Efter att du kollade koden kan du börja arbeta med projektet på din lokala maskin. När du introducerar förändringar, vill du begå detta till förvaret. För att göra detta förstår du ditt arbete och sedan lägger du ditt arbete i förvaret.

Gör dina ändringar

Vid denna tidpunkt är vi redo att faktiskt komma till jobbet. Vad detta betyder kommer att variera beroende på projektets karaktär: Kanske jobbar du med att stänga ett fel, kanske du refactoring en funktion, eller kanske lägger du till en funktion.

Oavsett fall, när ändringarna har gjorts kan du utfärda ett förpliktelse till förvaret. Det innebär att du tar de filer som du har arbetat på och kombinerar dem i en enda samling ändringar som kallas en förändringsuppsättning. Ändringar är normalt åtföljda av ett kort meddelande som förklarar vad som ändrats och varför.

När du begår kod, åtminstone först, trycker du inte egentligen något på förvaret. Med andra ord, om detta är ditt första engagemang, så lagras inte din kod faktiskt online i Bitbucket. I stället finns ändringarna bara på din lokala maskin. När du har utfört din första push, finns koden sedan i förvaret.

I slutändan ger källkontrollen ett sätt att behålla en ren historia av dina ändringar, liksom ett enkelt sätt att återgå till en viss tidpunkt.

Utfärda en Pull-förfrågan

När du har tryckt en ändring till fjärrförvaret (antingen via en klient eller via kommandoraden), är du redo att initiera en begäran om dragning. Detta innebär att du är redo att ta kod som du har tryckt in i din gaffel i kodbasen och fråga de ursprungliga underhållarna om de kommer att slå samman koden i sitt projekt.

Att göra detta inom Bitbucket-programmet är enkelt. Håll bara på instrumentbrädan i gaffelförvaret, och klicka sedan på Skapa dragförfrågan.

Därefter kommer du att presenteras med ett gränssnitt som gör att du kan skapa din dragförfrågan. Förfrågan kommer att innehålla ditt förråd, originalförvaret och en titel och beskrivning.

Härifrån väljer du ditt repository som källförvaret och det ursprungliga kodbasets repository som målförvaret. Det kan hända att du måste ändra dessa i instrumentpanelen beroende på dina krav.

Om du till exempel har namngett din kopia av koden "utvecklas" när du skickar kommandot "git add remote" tidigare, men den ursprungliga kodbasen använder ordet "master" måste du se till att du har valt de korrekta värdena.

Slutligen är det här där Bitbucket gör det möjligt för dig att lägga till granskare till en dragförfrågan. Som tidigare nämnts gör det det mycket lättare att locka uppmärksamheten hos projektansvariga så att de kan granska ditt arbete, ge upp eventuella kommentarer som de kan ha och slå samman (eller avvisa) din förfrågan.

Uppföljning med Pull-förfrågan

Bitbucket uppdaterar automatiskt din dragförfrågan när du trycker på kod till källkatalogen så att projektgranskaren alltid får se den senaste koden som de kan dra. 

När granskaren ber om en specifik förändring kan han / hon helt enkelt trycka på de begärda ändringarna i din kopia av förvaret - det vill säga gaffelförvaret.

Hantera Pull Requests

Om du behåller ett förråd som tar emot dragförfrågningar från andra, så kommer du sannolikt att märka att ditt förråd kommer att få både en anmälan i BitButch-programmets instrumentpanel, såväl som i din e-post.

Dessutom, om du är en granskare, får du också en anmälan och ett e-postmeddelande. För att hantera alla inkommande dragförfrågningar klickar du på länken "Pull requests" och väljer den dragförfrågan som du vill arbeta med.

Som du kan se ger Bitbucket ett rent gränssnitt där du kan diskutera och granska dragförfrågningar. Både underhållare och tittare kan avvisa, slå ihop, eller begära ytterligare arbete som ska utföras på en given dragförfrågan.

Förutsatt att du har en förfrågan som är redo att slås samman, klickar du på det specifika alternativet för att göra exakt det. Om du råkar arbeta med flera granskare, gör Bitbucket också det klart om vem som godkände förfrågan genom att använda ett kryssrutan på deras avatar. Självklart är ju fler kontroller som visas över granskarna, desto mer sannolikt är förfrågan redo för sammanslagning.

Men vad händer om sammanslagning av dragförfrågan misslyckas? Vid denna tidpunkt måste en manuell sammanslagning göras (vilken är en gemensam del av källkodshantering, men utanför ramen för denna artikel), varefter koden kommer att vara förbunden med förvaret.

Slutsats

Det är klart att källkontroll ger många fördelar för lag; Träningsförfrågningar är dock en kraftfull funktion som gör det enkelt att bidra till ett projekt och att andra kollegor granskar din kod, kommenterar den och förbättrar den innan den slås samman i kodbasen.

Detta ensamma kan hjälpa dig att bli en mycket bättre utvecklare när du lär dig av erfarenheter från andra utvecklare som behåller det större projektet. Om du inte redan är, försök använda dragförfrågningar i ditt arbetsflöde för att förbättra din kod och samla feedback från andra.

.