Dies ist eine Verzweigung zu meiner vorherigen Frage: Kann ich auswählen, wer zu meinem Open Source-Projekt beitragen kann?
Nachdem ich noch nie an Open-Source-Software gearbeitet und meine eigenen Mini-Anwendungen entwickelt habe, die ich hoffentlich diesen Sommer im App Store veröffentlichen werde, bin ich mit der Art und Weise, wie Open Source am besten funktioniert, nicht vertraut Entwicklungsstrukturen werden eingerichtet (Gabeln, Haupt-Repositorys …).
Eine Sache, die auftauchte, war die Erwähnung einer Pull-Anfrage. Was genau ist eine Pull-Anfrage?
Antwort
Der Begriff „Pull Request“ stammt von git
, wobei git pull
wird verwendet, um ein anderes Repository mit Ihrem lokalen Repository zusammenzuführen. Wenn also jemand anderes eine Kopie Ihres git
Repositorys hat und Änderungen daran vornimmt, die er möchte Zum Einbeziehen können sie Sie bitten, pull
die Änderungen aus ihrem Repository vorzunehmen „erneutes Anfordern einer pull
, daher der Begriff“ Pull-Anforderung „.
Heutzutage ist dies für die meisten Benutzer eher hinter einer grafischen Oberfläche verborgen Github oder Bitbucket oder über Gerrit zum Beispiel; Das Prinzip bleibt jedoch dasselbe: Jemand kopiert Ihr Repository, nimmt Änderungen vor und fordert sie an, in Ihrer eigenen Kopie zusammengeführt zu werden, vermutlich nachdem Sie sie überprüft haben.
Kommentare
- Git hat auch einen
git request-pull
Befehl. Dies erzeugt eine schriftliche Nachricht, an die Sie senden können jemand anderes, der ihn einlädt,git pull
zu verwenden, um Ihre Arbeit in seine Kopie der Software zu integrieren. - Kann für Anfänger nicht klarer erklärt werden.
Antwort
Wenn Sie verteilte Versionskontrollsysteme haben, Jeder Entwickler verfügt über eine Kopie des vollständigen Repositorys. Wenn Sie etwas an der Software ändern, übergeben Sie Ihre Änderungen an Ihr lokales Repository. Wenn verschiedene Repositorys diese Änderungen haben sollten, können Sie die Änderungen übertragen (Änderungen in ein anderes Repository verschieben, für das Sie das Recht haben) zum schreiben) oder die Änderungen ziehen (Revision kopieren her m andere Repositories zu Ihren eigenen). Da viele Projekte über ein Haupt-Repository verfügen, ist eine Pull-Anforderung die Anforderung, dass der Betreuer Ihre Änderungen abruft.
ein wenig darauf lesen scheint der Begriff auch für die nicht verteilte Versionskontrolle verwendet zu werden, wenn ein Benutzer die Aufnahme seiner Patches in den Hauptzweig des Projekts anfordert. Eine andere Lektüre speziell für Github: https://help.github.com/articles/using-pull-requests/
Antwort
Eine Pull-Anforderung bezieht sich auf Versionskontrollsysteme. Möglicherweise haben Sie mehrere Benutzergruppen:
- Administratoren / Eigentümer
- Mitwirkende
- Tester
Sie möchten Jede dieser Personen kann verschiedene Aufgaben ausführen:
- Administratoren / Eigentümer
Diesen Menschen kann vertraut werden. Sie haben möglicherweise vollen Zugriff auf das betreffende Repository, einschließlich der vollständigen Rechte zum Festschreiben, was sie möchten, wann sie möchten. - Mitwirkende
Dies können zufällige Personen aus dem Internet sein. Es könnten weniger Leute in einem Unternehmen sein. In beiden Fällen möchten Sie wahrscheinlich nicht, dass sie sich direkt auf die Codebasis festlegen können. Sie möchten zuerst ihre Änderungen überprüfen.
Hier kommen Pull-Anforderungen ins Spiel. Anstatt dies zuzulassen Wenn Ihre Mitwirkenden Änderungen an der Codebasis vornehmen, werden sie stattdessen das Repository aufteilen , eine Kopie auf ihrem lokalen Computer erstellen und diese entwickeln. Wenn sie fertig sind, können sie eine Pull-Anforderung erstellen, die ihre aktualisierten Daten enthält Code. Jemand in der höheren Gruppe kann dann seine Änderungen auf Richtigkeit und Übereinstimmung mit den Standards überprüfen und ihre Änderungen zusammenführen , wenn sie übereinstimmen.
Kommentare
- Etwas abseits des Themas, aber selbst diejenigen Personen, die ihre eigenen Änderungen direkt zusammenführen können, sollten PRs zur Überprüfung durch ihre Kollegen einreichen. Angenommen, Sie ‚ arbeiten in einem Team. Wenn Sie ‚ nicht sind, ist ‚ das, was CodeReview ist für.
- OK. Die Schritte sind also: Sie gabeln das Haupt-Repo, ziehen es auf Ihren PC, ändern es, schreiben es fest und verschieben es in Ihren gegabelten Zweig und fordern dann den Administrator auf, von Ihrem gegabelten Zweig in das Haupt-Zweig zu ziehen und es zusammenzuführen?
Antwort
Eine Pull-Anfrage (PR) ist eine Methode zum Einreichen von Beiträgen an ein offenes Entwicklungsprojekt. Dies tritt auf, wenn ein Entwickler Änderungen an einem externen Repository anfordert, die nach der Begutachtung für die Aufnahme in das Hauptrepository eines Projekts berücksichtigt werden sollen.
Quelle: Was ist eine Pull-Anforderung? bei OSS Watch
Einfaches Beispiel Wenn Sie das Open Source-Repository klonen / verzweigen, einige Änderungen / Commits vornehmen und die Änderungen in das Haupt-Repository einbinden möchten, müssen Sie die Pull-Anforderung senden, die alle Ihre Commits in einem logischen Teil gruppiert enthält Von anderen Entwicklern überprüft.
Dies hat einige Vorteile gegenüber Standard-Commits und -Puschs, da Sie einige zusätzliche Augenpaare überprüfen und häufige / versteckte Probleme vermeiden müssen. Fehler vor den eigentlichen Änderungen.
Siehe einige PR-Beispiele:
- GitHub hier oder hier
- Chromium Code Reviews (entspricht Pull-Anfrage)