Ist es richtig, die Mitwirkenden zu bitten, ihre Pull-Anforderungen auf Github neu abzustimmen?


25

Ich habe ein relativ beliebtes Github-Repo.

Wenn sich eine Pull-Anforderung gut zum Zusammenführen eignet, fordere ich den Autor normalerweise auf, sie vor dem Zusammenführen in eine einzelne Festschreibung umzuwandeln (insbesondere, wenn mehrere kleine Änderungen vorgenommen wurden).

Ist das eine gute Übung? Ist das akzeptable / Standard-GitHub-Etikette?

Also einige Vorteile:

  • In den Commit-Protokollen wird ein schöner, sauberer Commit-Verlauf angezeigt
  • Ich muss das Commit nicht selbst ändern
  • Es delegiert einen Teil der Arbeit

Einige mögliche Nachteile:

  • Ich bin mir nicht sicher, ob dies eine gute Etikette ist
  • Ich bin mir nicht sicher, ob dies eine gute Übung ist
  • Normalerweise habe ich bereits um ein paar andere Änderungen gebeten - dies ist eine weitere und ich möchte die Mitwirkenden nicht entmutigen.

1
Können Sie einige Vor- und Nachteile beschreiben, die sich aus dieser Vorgehensweise ergeben?
Alex Feinman

1
Einige zusätzliche Vor- und Nachteile sind erwägenswert. gut: Git-Bisect und andere Umkehrungen sind einfacher, wenn jedes Commit einen baubaren oder anderweitig vollständigen Zustand erzeugt, und dieser Ansatz ist ein einfacher Weg, dies zu gewährleisten. schlecht: kleine Änderungen mit einfachen Commit-Nachrichten werden in Mega-Commits umgewandelt. ZB "Diese eine Zeile wurde geändert, um die Groß- und Kleinschreibung zu korrigieren" wird möglicherweise in "Feature hinzufügen, große Liste von Änderungen " zusammengefasst. Dies erschwert es, den Grund für eine bestimmte Änderung zu finden.
Gankro

1
Nichts falsch daran, Standards zu setzen. Stellen Sie einfach klar, was erwartet wird. Beispiel: symfony.com/doc/current/contributing/code/patches.html Scrollen Sie nach unten zu Schritt 3: Senden Sie Ihren Patch
Cerad

6
@Granko: "Rebase" und "Rebase in einem Commit" sind zwei separate Probleme.
Matthew Scharley

2
Wenn ein Mitwirkender dazu aufgefordert wird, sollte er den Zweig der Pull-Anforderung mit überschreiben git push -f?
Flimm

Antworten:


16

Für Git ist es eine Art heiliger Krieg, wenn Sie einfach Zweige zusammenführen oder Commits für die neueste Version des Zweigs, in dem Sie zusammenführen, neu erstellen. Es gibt viele Gespräche darüber, was besser ist, wenn Sie schnell nach Programmers.SE suchen .

Betrachten wir die Etikette dahinter aus praktischer Sicht. Wenn Sie mit neuem Code arbeiten, der von einer anderen Person stammt, ist es immer am besten, diese Person dazu zu bringen, entweder die neuesten Änderungen aus dem Zweig zusammenzuführen oder ihn vor dem Zusammenführen neu zu fassen, um eine saubere Zusammenführung zu gewährleisten. Denken Sie daran, dass sie den Code geschrieben haben, sodass sie in der Regel am besten für die Behandlung von Konflikten bei Zusammenführung / Neuanordnung geeignet sind. Ich persönlich sehe kein Problem damit und sehe diese Anfrage die ganze Zeit von anderen Leuten. Wenn es keine Konflikte gibt, mache ich das oft selbst, da es sich um ein 2-Sekunden-Update handelt, das git selbst anwenden kann. Aber wenn es Konflikte gibt, werde ich immer den ursprünglichen Autor des Codes bitten, sich selbst darum zu kümmern.

Für GitHub (zumindest) wird darüber hinaus ein Link zu Ihrer CONTRIBUTINGDatei angezeigt, der über allen PR-Versuchen steht, sodass Sie Ihre Erwartungen gut umreißen können. In vielen Projekten sind nur die aktuellen Zweige zusammengeführt.


+1 für das Einbringen von Pragmatismus in die Diskussion. Ja, das ist der springende Punkt. Es kann ziemlich schwierig sein, komplexe Konflikte in großen Pull-Anforderungen zu lösen, insbesondere wenn eine bestimmte Anzahl von Commits betroffen ist. Dies ist der Punkt, an dem der ursprüngliche Autor aufgefordert werden sollte, sich einzuschalten. Die einfachen Konflikte sind nicht das Problem, sie waren nie und werden es auch nie sein.
JensG

1
+1 für die eigentliche Beantwortung und nicht nur für Kommentare!
Pablojim
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.