Czy opiekun github powinien przepisać prośby autora o ściągnięcie?

44

Z zawodu nie jestem programistą, ale trochę koduję i trochę użyłem github. Natknąłem się na zaskakującą sytuację. Bardzo dobrze znam git.

Jest projekt, w którym znalazłem (mały) błąd, który miał na mnie wpływ. Popołudnie spędziłem na znajdowaniu i naprawianiu. Rozwidliłem repozytorium, zatwierdziłem zmianę i wysłałem żądanie ściągnięcia. Po zobaczeniu, że został zamknięty jako „Scalony w gałąź rozwoju”, pomyślałem, że wszystko jest w porządku.

Przeglądałem dzisiaj repozytorium, przygotowując się do usunięcia mojego oddziału, i nie mogę w ogóle znaleźć, gdzie zatwierdzenie zostało scalone z repozytorium opiekuna. Po pewnym czasie zdaję sobie sprawę, że został dodany jako zatwierdzenie, ale autor nie jest już mną.

O ile mogę powiedzieć, jedynym sposobem, aby to zrobić, byłoby w szczególności użycie bazy, zmiany lub innego przepisania historii w celu usunięcia oryginalnego autora.

Wydaje mi się to bardzo złe. W najlepszym razie jest to mylące, w najgorszym przypadku autor tego repozytorium uznaje zasługi wszystkich, a następnie historia pierwotnego autora jest tracona. Znowu jest to mały błąd, nie używam tego do mojego CV, po prostu wydaje się nieuczciwy.

Czy to normalne? Czy powinienem coś o tym powiedzieć?

Edycja: Wydaje się, że powinienem zapytać, więc zrobię to właśnie dziś rano.

Zgodnie z żądaniem poniżej. Sprawdziłem, a mój kod istnieje i został zastosowany dokładnie tak, jak go napisałem (łącznie z komentarzem). Zweryfikowałem, że zarówno autor, jak i autor zostały zmienione. Dodano także jedną dodatkową zmianę w tym samym czasie, co moje zmiany. Jest to pojedynczy wiersz, który wpływałby na łatkę, a także na inny kod przed nią. IE dodanie jednego wiersza nie jest związane z naprawionym błędem.

Aktualizacja Wydaje się, że odpowiedzią było, że autor utrzymuje gałąź rozwoju i nie chce się z nią połączyć. Ponownie napisał moje zobowiązanie, aby uniknąć połączenia. Nie martwiłem się o to, że oryginalny oddział b / c git jest potężny do wybierania, zmiany bazy i łączenia zatwierdzeń w razie potrzeby.

Czy to typowe na github?
Czy powinienem skontaktować się z opiekunem projektu, aby zapytać, do którego oddziału zastosować poprawki?

użytkownik1585512
źródło
7
+1 za postawienie etycznego pytania o kodowanie :) Zainteresowany ustaleniem, czy jest to zachowanie domyślne, wydaje się trochę dodatkowej pracy dla opiekuna, aby to zrobić. A może stałoby się tak, gdyby opiekun nieznacznie zmodyfikował zatwierdzenie po zaakceptowaniu żądania ściągnięcia?
Sunil D.,
To dobre pytanie. Nie jestem wystarczająco rodzinny z github, aby odpowiedzieć na to, co jest normalne . Myślę jednak, że możliwe jest wybranie opcji -n, dokonanie modyfikacji, a następnie zatwierdzenie. Skutecznie zmienia autora.
4
Być może opiekun zastosował zmianę ręcznie, zamiast ją scalić. Sugeruję, aby zapytać o to opiekuna (bez oskarżania go o nieuczciwość).
Keith Thompson,
6
Żeby było jasne, zmienił się „autor”, prawda? Nie „zlecający”? Pytam tylko dlatego, że rozróżnienie jest niezwykle ważne, jeśli chodzi o etykę plagiizmu kodu.
Christopher
2
Nie mówisz, jak duża była poprawka (wiersze kodu) ani w jaki sposób kod jest licencjonowany, ale prawdopodobnie może to również naruszać Twoje prawa autorskie.
Jaydee,

Odpowiedzi:

20

Nie, nie powinni, jeśli można tego uniknąć. Jest to problem, który z mojego doświadczenia zdarza się zbyt często. Uważam jednak, że bardziej dotyczy to niewiedzy o tym, jak prawidłowo używać git, niż kogoś, kto chce ukraść kredyt.

  • Jeśli chcą zmodyfikować zmianę przed zastosowaniem jej w głównej gałęzi, mogą łatwo utworzyć gałąź dla zmiany. Następnie mogą dodać własne zatwierdzenie po twoim, a następnie scalić gałąź.
  • Jeśli twoje żądanie ściągnięcia nie jest oparte na najnowszej wersji ich głównej gałęzi, mogą wydać polecenie git rebase master. Jeśli występują konflikty, mogą albo samodzielnie rozwiązać konflikty (bez zmiany autora), albo dać ci szansę na ich naprawienie.

Myślę, że Github mógłby i powinien szukać tego rodzaju przypadkowej kradzieży kredytów i w razie potrzeby edukować opiekunów najlepszych praktyk.

Gerry
źródło
6

W tym miejscu pominięto niektóre kluczowe szczegóły.

  • Jeśli sposób, w jaki „naprawiłeś” błąd, nie spodobał się opiekunom, a nawet był niepoprawny, ponieważ wprowadził własne błędy, to opiekun mógł musieć edytować twoją pracę przed zatwierdzeniem. W takim przypadku zrozumiałe jest, aby zmienić autora.

  • Jak inni wspomniano, autor jest zupełnie inny od committer . Jak być może już wiesz, to autor jest tym, który faktycznie stworzył zatwierdzenie, podczas gdy osoba zatwierdzająca byłaby tą, która go zastosuje.

Powinieneś dokładnie przyjrzeć się zatwierdzeniu i zaktualizować swoje pytanie swoimi ustaleniami.

Steven Penny
źródło
1
Po prostu poszedłem to sprawdzić. Brak zmian w mojej łatce. Przedtem była zmiana o 1 linię i nie była związana z moją łatką, która została dodana w tym samym czasie.
user1585512,
3

Wydaje się, że odpowiedzią było, że autor utrzymuje gałąź rozwoju i nie chce się z nią połączyć. Ponownie napisał moje zobowiązanie, aby uniknąć połączenia.

użytkownik1585512
źródło
12
Więc powinni byli użyć git cherry-pick.
svick
3

Aby odpowiedzieć na zaktualizowane pytanie:

Trudno powiedzieć, co jest typowe dla github, poza stwierdzeniem, że zazwyczaj każdy projekt jest inny i każdy ma swój preferowany przepływ pracy. Zasadniczo najlepszym podejściem przed wysłaniem żądania ściągnięcia jest zapytanie o jego przepływ pracy lub sprawdzenie, czy można stwierdzić na podstawie wcześniejszych zamkniętych żądań ściągnięcia.

Moje osobiste doświadczenia były takie, że jeśli nie poprosisz, zazwyczaj zamkną one żądanie ściągnięcia bez komentarza (gorszy przypadek) lub najlepiej zostawią komentarz wyjaśniający, jaka jest procedura z prośbą o zaktualizowanie twojego żądania ściągnięcia. Powiem, że sposób, w jaki opiekun w twoim przypadku poradził sobie z tym, wydaje się dziwny, ale mogła to być dla nich ścieżka najmniejszego oporu. Wątpię jednak, by celowo miał na celu kradzież kredytu.

Sugeruję, abyś poprosił opiekuna o dodanie dokumentacji wyjaśniającej, w jaki sposób chcieliby otrzymywać żądania ściągania i przeciwko jakiej gałęzi, aby uniknąć zamieszania i braku uznania w przyszłości. Chciałbym, aby więcej projektów zawierało tę dokumentację, ponieważ uważam, że zwiększyłoby to skłonność ludzi do uczestnictwa w projekcie.

Jacob Schoen
źródło