Dette forgrenet seg fra det forrige spørsmålet mitt: Kan jeg velge hvem som kan bidra til Open Source-prosjektet mitt?
Etter at jeg aldri har jobbet med åpen kildekode-programvare tidligere, og utviklet mine egne miniprogrammer som jeg håper å gi ut til App Store noen ganger i sommer, er jeg ganske ukjent med den mest åpne kildekoden utviklingsstrukturer er satt opp (gafler, hovedregistre …).
En ting som dukket opp var omtale av en pull-forespørsel. Hva er egentlig en pull-forespørsel?
Svar
Begrepet «pull request» kommer fra git
, der git pull
-kommandoen brukes til å slå sammen et annet arkiv i det lokale. Hvis noen andre har en kopi av git
-lageret ditt, og gjør endringer i det slik at de ønsker deg for å innlemme kan de be deg om å pull
endringene fra depotet deres; de «ber om en pull
, derav begrepet» pull-forespørsel «.
I dag pleier dette for de fleste brukere å være skjult bak et grafisk grensesnitt av noe slag, på Github eller Bitbucket eller via Gerrit for eksempel; men prinsippet forblir det samme: noen kopierer depotet ditt, gjør endringer og ber om at de slås sammen i din egen kopi, antagelig etter at du har «gjennomgått dem.
Kommentarer
- Git har også en
git request-pull
kommando. Dette gir en skriftlig melding som du kan sende til noen andre, og inviterer dem til å brukegit pull
for å inkludere arbeidet ditt i kopien av programvaren. - Kan ikke forklares tydeligere for nybegynnere.
Svar
Hvis du har distribuerte versjonskontroll -systemer, hver utvikler har en kopi av hele depotet. Hvis du endrer noe i programvaren, forplikter du endringene til det lokale depotet. Hvis forskjellige repositorier skulle ha disse endringene, kan du skyve endringene (flytte endringene til et annet depot du har rett å skrive til) eller trekke endringene (kopier revisjonen fra m andre arkiver til dine egne). Ettersom mange prosjekter har et hovedlager, er en pull-forespørsel forespørselen om at vedlikeholderen trekker endringene dine.
Å lese opp litt på den , det ser ut til at begrepet brukes også på ikke-distribuert versjonskontroll, hvis en bruker ber om å inkludere lappene sine i hovedgrenen til prosjektet. En annen lese spesielt for github: https://help.github.com/articles/using-pull-requests/
Svar
En pull-forespørsel er relatert til versjonskontrollsystemer. Du kan ha flere sett med brukere:
- Administratorer / eiere
- Bidragsytere
- Testere
Du vil ha hver av disse menneskene for å kunne gjøre forskjellige ting:
- Administratorer / eiere
Disse menneskene kan man stole på. De kan ha full tilgang til det aktuelle arkivet, inkludert full rett til å begå det de vil når de vil. - Bidragsytere
Dette kan være tilfeldige personer fra Internett; de kan være mindre mennesker i et selskap. Uansett vil du sannsynligvis ikke at de skal kunne forplikte seg rett til kodebasen – du vil først gjennomgå endringene.
Det er her trekkforespørsler kommer inn. I stedet for å tillate rette endringer i kodebasen fra bidragsyterne dine, de vil i stedet gaffel depotet, lage en kopi på sin lokale maskin, og utvikle det. Når de er ferdige, kan de opprette en pull-forespørsel som inneholder sine oppdaterte kode. Noen i den høyere gruppen kan da se på endringene for å være korrekte og medvirke til standardene, og slå sammen endringene hvis de overholder.
Kommentarer
- Litt utenfor emnet, men selv de som kan direkte slå sammen sine egne endringer, bør sende inn PR-er for jevnaldrende til vurdering. Forutsatt at du ' jobber med et team som er. Hvis du ' ikke er det, antar jeg at ' er hva CodeReview er for.
- OK. Så trinnene er: du forkaster hovedreposisjonen, trekker den til PC-en din, endrer den, forplikter og skyver til den gaffelgrenen din og deretter ber administratoren om å trekke og slå seg sammen fra din gaffelgren til hoveddelen?
Svar
En pull-forespørsel (PR) er en metode for å sende inn bidrag til et åpent utviklingsprosjekt. Det oppstår når en utvikler ber om at endringer som er forpliktet til et eksternt arkiv, skal vurderes for inkludering i prosjektets hovedlager etter fagfellevurderingen.
Kilde: Hva er en pull-forespørsel? på OSS Watch
Enkelt eksempel er når du kloner / forkoker åpen kildekodedepot, gjør noen endringer / forplikter, og for å slå sammen endringene i hovedregisteret, må du sende pullforespørselen som består av alle dine forpliktelser gruppert i ett logisk stykke gjennomgått av andre utviklere.
Dette har noen fordeler i forhold til standardforpliktelser og presser, ettersom du har noen ekstra par øyne å sjekke og unngå vanlige / skjulte problemer / feil før de faktiske endringene.
Se noen PR-eksempler:
- GitHub her eller her
- Chromium Code Reviews (tilsvarer pull-request)