Czym dokładnie jest pull request?

To rozgałęzienie od mojego poprzedniego pytania: Czy mogę wybrać, kto może uczestniczyć w moim projekcie Open Source?

Ponieważ nigdy wcześniej nie pracowałem nad oprogramowaniem typu open source i opracowałem własne mini aplikacje, które mam nadzieję udostępnić w App Store tego lata, zupełnie nie znam sposobu, w jaki większość open source struktury programistyczne są skonfigurowane (rozwidlenia, główne repozytoria …).

Jedną z rzeczy, które się pojawiły, była wzmianka o żądaniu ściągnięcia. Czym dokładnie jest żądanie ściągnięcia?

Odpowiedź

Termin „pull request” pochodzi z git, gdzie git pull jest używane do scalenia innego repozytorium z lokalnym. Jeśli więc ktoś inny ma kopię Twojego repozytorium git i wprowadza w nim zmiany, które chciałby, aby wprowadzić, mogą poprosić Cię o pull zmiany z ich repozytorium; oni „ponowne żądanie pull, stąd termin„ pull request ”.

W dzisiejszych czasach większość użytkowników jest zwykle ukryta za jakimś interfejsem graficznym, na Na przykład Github lub Bitbucket lub przez Gerrit; ale zasada pozostaje ta sama: ktoś kopiuje twoje repozytorium, wprowadza zmiany i prosi o połączenie ich w twoją własną kopię, prawdopodobnie po tym, jak je przejrzałeś.

Komentarze

  • Git ma również polecenie git request-pull . Tworzy to pisemną wiadomość, którą możesz wysłać kogoś innego, zapraszając go do użycia git pull w celu włączenia Twojej pracy do swojej kopii oprogramowania.
  • Nie można tego wyjaśnić jaśniej dla początkujących.

Odpowiedź

Jeśli masz rozproszone systemy kontroli wersji , każdy programista ma kopię pełnego repozytorium. Jeśli zmienisz coś w oprogramowaniu, zatwierdzasz zmiany w swoim lokalnym repozytorium. Jeśli różne repozytoria powinny mieć te zmiany, możesz przesłać zmiany (przenosząc zmiany do innego repozytorium, które masz prawo napisać) lub pobrać zmiany (skopiuj wersję z m innych repozytoriów do własnego). Ponieważ wiele projektów ma główne repozytorium, pull-request to żądanie, które opiekun pobiera twoje zmiany.

Trochę o nim przeczytać , wygląda na to, że termin ten jest używany także w przypadku kontroli wersji nierozproszonej, jeśli jeden użytkownik poprosi o włączenie jego łatek do głównej gałęzi projektu. Kolejna lektura, szczególnie dla github: https://help.github.com/articles/using-pull-requests/

Odpowiedź

Żądanie ściągnięcia jest związane z systemami kontroli wersji. Możesz mieć kilka zestawów użytkowników:

  • Administratorzy / właściciele
  • Współtwórcy
  • Testerzy

Chcesz każdą z tych osób, aby móc robić różne rzeczy:

  • Administratorzy / właściciele
    Tym ludziom można ufać. Mogą mieć pełny dostęp do repozytorium, o którym mowa, w tym pełne prawa do wykonywania tego, czego chcą, kiedy chcą.
  • Współtwórcy
    To mogą być przypadkowe osoby z Internetu; mogą być mniejszymi ludźmi w firmie. Tak czy inaczej, prawdopodobnie nie chcesz, aby mogli zatwierdzać bezpośrednio do kodu źródłowego – najpierw chcesz przejrzeć ich zmiany.

Tutaj przychodzą żądania ściągnięcia. Zamiast zezwalać proste zmiany w bazie kodu od twoich współpracowników, zamiast tego rozwidlą repozytorium, utworzą kopię na swoim komputerze lokalnym i opracują ją. Kiedy skończą, mogą utworzyć żądanie ściągnięcia zawierające zaktualizowane kod. Ktoś z wyższej grupy może następnie przejrzeć swoje zmiany pod kątem poprawności i zgodności ze standardami oraz scalić zmiany, jeśli są zgodne.

Komentarze

  • Trochę poza tematem, ale nawet osoby, które mogą bezpośrednio scalić własne zmiany, powinny przesłać PR do oceny współpracownikom. Zakładając, że ' pracujesz w takim zespole. Jeśli ' nie jesteś, myślę, że ' co CodeReview jest dla.
  • OK. Więc kroki są następujące: rozwidlasz główne repozytorium, ściągasz je na swój komputer, modyfikujesz, zatwierdzasz i wypychasz do swojej rozwidlonej gałęzi, a następnie żądasz od Administratora ściągnięcia i scalenia z twojej rozwidlonej gałęzi do głównej? ul>

Odpowiedź

Żądanie ściągnięcia (PR) to metoda przesyłania wkładów do otwartego projektu programistycznego. Występuje, gdy programista prosi o wprowadzenie zmian zatwierdzonych w repozytorium zewnętrznym do uwzględnienia w głównym repozytorium projektu po dokonaniu recenzji.

Źródło: What Is A Pull Request? w OSS Watch

Prosty przykład polega na klonowaniu / rozwidlaniu repozytorium open source, wprowadzaniu pewnych zmian / zatwierdzeń i w celu scalenia zmian w głównym repozytorium, musisz wysłać żądanie ściągnięcia, które składa się ze wszystkich zatwierdzeń zgrupowanych w jeden element logiczny, aby można było je sprawdzone przez innych programistów.

Ma to pewne zalety w porównaniu ze standardowymi zatwierdzeniami i pushami, ponieważ masz dodatkową parę oczu do sprawdzenia i uniknięcie typowych / ukrytych problemów / błędy przed faktycznymi zmianami.

Zobacz kilka przykładów PR:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *