Dit kwam voort uit mijn vorige vraag: Kan ik selecteren wie kan bijdragen aan mijn Open Source Project?
Ik heb nog nooit aan open source software gewerkt en mijn eigen minitoepassingen ontwikkeld die ik deze zomer soms in de App Store wil uitbrengen, ik ben vrij onbekend met de manier waarop de meeste open source ontwikkelstructuren worden opgezet (forks, hoofdrepositories …).
Een ding dat opdook was de vermelding van een pull-verzoek. Wat is precies een pull-verzoek?
Antwoord
De term “pull request” komt van git
, waar de git pull
commando wordt gebruikt om een andere repository samen te voegen met uw lokale. Dus als iemand anders een kopie heeft van uw git
repository, en er wijzigingen in aanbrengt die hij of zij u graag zou willen om op te nemen, kunnen ze je vragen om pull
de wijzigingen van hun repository; ze “re requesting a pull
, vandaar de term” pull request “.
Tegenwoordig is dit voor de meeste gebruikers verborgen achter een of andere grafische interface, op Github of Bitbucket of via Gerrit bijvoorbeeld; maar het principe blijft hetzelfde: iemand kopieert je repository, brengt wijzigingen aan en vraagt om ze samen te voegen met je eigen kopie, vermoedelijk nadat je ze “hebt bekeken.
Opmerkingen
- Git heeft ook een
git request-pull
commando. Dit produceert een geschreven bericht dat je kunt sturen naar iemand anders, die hen uitnodigt omgit pull
te gebruiken om uw werk op te nemen in hun exemplaar van de software. - Kan niet duidelijker worden uitgelegd voor beginners.
Antwoord
Als je gedistribueerde versiebeheer -systemen hebt, elke ontwikkelaar heeft een kopie van de volledige repository. Als u iets aan de software verandert, legt u uw wijzigingen vast in uw lokale repository. Als verschillende repositories deze wijzigingen zouden moeten hebben, kunt u de wijzigingen pushen (wijzigingen verplaatsen naar een andere repository heeft u het recht om naar te schrijven) of trek de wijzigingen aan (kopieer revisie weer m andere repositories naar uw eigen). Aangezien veel projecten een hoofdrepository hebben, is een pull-request het verzoek dat de onderhouder uw wijzigingen ophaalt.
een beetje erop lezen , het lijkt erop dat de term ook wordt gebruikt op niet-gedistribueerde versiebeheer, als een gebruiker vraagt om zijn patches op te nemen in de hoofdtak van het project. Een ander leest speciaal voor github: https://help.github.com/articles/using-pull-requests/
Antwoord
Een pull-verzoek is gerelateerd aan versiebeheersystemen. U kunt verschillende groepen gebruikers hebben:
- Beheerders / eigenaren
- Bijdragers
- Testers
U wilt elk van deze mensen om verschillende dingen te kunnen doen:
- Beheerders / eigenaren
Deze mensen zijn te vertrouwen. Ze hebben mogelijk volledige toegang tot de repository in kwestie, inclusief volledige rechten om vast te leggen wat ze willen wanneer ze willen. - Bijdragers
Dit kunnen willekeurige mensen van internet zijn; het zijn misschien mindere mensen in een bedrijf. Hoe dan ook, je wilt waarschijnlijk niet dat ze zich rechtstreeks in de codebase kunnen vastleggen – je wilt eerst hun wijzigingen bekijken.
Dit is waar pull-verzoeken binnenkomen. In plaats van toe te staan directe wijzigingen in de codebase van uw bijdragers, zullen zij in plaats daarvan de repository splitsen , een kopie op hun lokale computer maken en die ontwikkelen. Wanneer ze klaar zijn, kunnen ze een pull-verzoek maken met hun bijgewerkte code. Iemand in de hogere groep kan vervolgens hun wijzigingen beoordelen op juistheid en medeplichtigheid aan standaarden, en hun wijzigingen samenvoegen als ze voldoen.
Opmerkingen
- Enigszins afwijkend van het onderwerp, maar zelfs die mensen die hun eigen wijzigingen kunnen rechtstreeks samenvoegen, moeten PRs indienen zodat hun collegas deze kunnen beoordelen. Ervan uitgaande dat u ' aan een team werkt. Als je ' niet bent, denk ik dat ' wat CodeReview is voor.
- OK. Dus de stappen zijn: je splitst de hoofdopslagplaats op, trekt het naar je pc, wijzigt het, commit en pusht naar je gevorkte branch en vraagt dan de beheerder om van je gevorkte branch naar de main te halen en samen te voegen?
Answer
Een pull request (PR) is een methode om bijdragen in te dienen voor een open ontwikkelingsproject. Het komt voor wanneer een ontwikkelaar vraagt om wijzigingen die zijn vastgelegd in een externe opslagplaats om na de peer review in aanmerking te komen voor opname in de hoofdopslagplaats van een project.
Bron: Wat is een Pull Request? bij OSS Watch
Eenvoudig voorbeeld is wanneer je de open source repository kloont / vorkt, enkele wijzigingen / commits uitvoert en om de wijzigingen samen te voegen met de hoofdrepository, moet je het pull-verzoek verzenden dat al je commits gegroepeerd in één logisch stuk bevat, zodat het kan worden beoordeeld door andere ontwikkelaars.
Dit heeft enkele voordelen ten opzichte van standaard commits en pushes, aangezien je een paar extra ogen hebt om te controleren en algemene / verborgen problemen / fouten vóór de feitelijke wijzigingen.
Bekijk enkele PR-voorbeelden:
- GitHub hier of hier
- Chromium-codebeoordelingen (gelijk aan pull-request)