Sollte ein Github-Betreuer die Pull-Anforderungen des Autors umschreiben?

44

Ich bin kein Programmierer von Beruf, aber ich mache ein paar Codierungen und habe einige Github verwendet. Ich bin auf eine überraschende Situation gestoßen. Ich bin sehr vertraut mit git.

Es gibt ein Projekt, bei dem ich einen (kleinen) Fehler gefunden habe, der mich betroffen hat. Ich habe einen Nachmittag damit verbracht, es zu finden und zu reparieren. Ich habe das Repository gegabelt, die Änderung festgeschrieben und eine Pull-Anforderung ausgegeben. Nachdem ich festgestellt hatte, dass es als "In Entwicklungszweig integriert" geschlossen wurde, dachte ich, dass alles in Ordnung sei.

Ich habe heute im Repo gestöbert, um meinen Zweig zu entfernen, und ich kann überhaupt nicht feststellen, wo das Commit in das Repo des Betreuers eingearbeitet wurde. Nach einiger Zeit wird mir klar, dass es als Commit hinzugefügt wurde, aber der Autor bin nicht mehr ich.

Soweit ich das beurteilen kann, besteht die einzige Möglichkeit darin, einen Rebase, eine Änderung oder ein anderes History-Rewrite zu verwenden, um den ursprünglichen Autor zu entfernen.

Das scheint mir sehr falsch zu sein. Im besten Fall ist es verwirrend, im schlimmsten Fall erkennt der Autor dieses Repos die Verpflichtungen aller an, und dann geht die Geschichte des ursprünglichen Mitwirkenden verloren. Wieder ist es ein kleiner Fehler, ich benutze ihn nicht für meinen beruflichen Lebenslauf, er scheint nur unehrlich zu sein.

Ist das normal? Soll ich etwas dazu sagen?

Bearbeiten: Das allgemeine Gefühl scheint zu sein, dass ich fragen gehen sollte, also werde ich genau das heute Morgen tun.

Wie in der Anfrage unten angegeben. Ich habe geprüft und mein Code existiert und wurde genau so angewendet, wie ich ihn geschrieben habe (einschließlich des Kommentars). Ich habe überprüft, dass sowohl der Committer als auch der Autor geändert wurden. Gleichzeitig mit meinen Änderungen wurde eine weitere Änderung hinzugefügt. Es ist eine einzelne Zeile, die sowohl den Patch als auch den vorherigen Code betreffen würde. IE die Hinzufügung mit einer Zeile hängt nicht mit dem Programmfehler zusammen, den ich regelte.

Update Es scheint die Antwort zu sein, dass der Autor einen Entwicklungszweig unterhält und nicht von seinem Masterzweig in diesen verschmelzen möchte. Er hat mein Commit neu verfasst, um eine Zusammenführung zu vermeiden. Ich habe mich nicht mit der Fülle von B / C-Gits des ursprünglichen Zweigs befasst, mit denen sich Commits nach Bedarf auswählen, neu zusammenführen und zusammenführen lassen.

Ist das typisch für Github?
Sollte ich den Projektbetreuer kontaktieren, um zu fragen, auf welchen Zweig Patches angewendet werden sollen?

user1585512
quelle
7
+1 für die Beantwortung einer ethischen Frage zur Codierung :) Wenn Sie herausfinden möchten, ob dies das Standardverhalten ist, muss der Betreuer dies mit ein wenig zusätzlicher Arbeit erledigen. Oder würde dies passieren, wenn der Betreuer Ihr Commit geringfügig ändert, nachdem er Ihre Pull-Anfrage akzeptiert hat?
Sunil D.
Das ist eine gute Frage. Ich bin nicht vertraut genug mit Github, um zu beantworten, was normal ist . Ich denke jedoch, dass es möglich ist, mit der Option -n eine Auswahl zu treffen, Änderungen vorzunehmen und dann ein Commit durchzuführen. Den Autor effektiv ändern.
4
Möglicherweise hat der Betreuer Ihre Änderung manuell übernommen, anstatt sie zusammenzuführen. Ich schlage vor, den Betreuer danach zu fragen (ohne ihn der Unehrlichkeit zu beschuldigen).
Keith Thompson
6
Nur um klar zu sein, es ist der "Autor", der sich geändert hat, richtig? Nicht der "Committer"? Ich frage nur, weil die Unterscheidung für die Ethik des Code-Plagerismus äußerst wichtig ist.
Christopher
2
Sie sagen nicht, wie groß das Update war (Codezeilen) oder wie der Code lizenziert ist, aber dies könnte möglicherweise auch eine Verletzung Ihres Urheberrechts sein.
Jaydee

Antworten:

20

Nein, sollten sie nicht, wenn vermeidbar. Meiner Erfahrung nach ist dies ein Problem, das viel zu oft auftritt. Ich glaube jedoch, dass es mehr damit zu tun hat, dass man git nicht richtig einsetzt, als dass jemand Kredit stehlen will.

  • Wenn sie Ihre Änderung ändern möchten, bevor sie sie auf ihren Hauptzweig anwenden, können sie auf einfache Weise einen Zweig für Ihre Änderung erstellen. Sie können dann ihr eigenes Commit nach dem Ihren hinzufügen und dann den Zweig in zusammenführen.
  • Wenn Ihre Abrufanforderung nicht auf der neuesten Version des Hauptzweigs basiert, können sie ein ausstellen git rebase master. Bei Konflikten können sie die Konflikte entweder selbst beheben (ohne den Autor zu ändern) oder Ihnen die Möglichkeit geben, sie zu beheben.

Ich denke, Github könnte und sollte nach dieser Art von versehentlichem Kreditraub Ausschau halten und die Betreuer gegebenenfalls über bewährte Verfahren informieren.

Gerry
quelle
6

Sie haben hier einige wichtige Details ausgelassen.

  • Wenn die Art und Weise, wie Sie den Fehler "behoben" haben, nicht den Wünschen des Betreuers entsprach oder sogar darin falsch war, dass er seine eigenen Fehler einbrachte, musste der Betreuer möglicherweise Ihre Arbeit vor dem Festschreiben bearbeiten. In diesem Fall ist es verständlich, den Autor zu ändern.

  • Wie schon andere erwähnt haben, ist der Autor ganz anders als der Committer . Wie Sie vielleicht bereits wissen, ist der Autor derjenige, der das Commit tatsächlich erstellt hat, während der Committer derjenige ist, der es anwendet.

Sie sollten sich das Commit genau ansehen und Ihre Frage mit Ihren Ergebnissen aktualisieren.

Steven Penny
quelle
1
Ich habe das gerade überprüft. An meinem Patch wurden keine Änderungen vorgenommen. Es gab zuvor eine Änderung in einer Zeile, die nicht mit meinem Patch zu tun hatte, der gleichzeitig hinzugefügt wurde.
user1585512
3

Es scheint die Antwort zu sein, dass der Autor einen Entwicklungszweig unterhält und nicht von seinem Masterzweig in diesen verschmelzen möchte. Er hat mein Commit neu verfasst, um eine Zusammenführung zu vermeiden.

user1585512
quelle
12
Dann hätten sie nutzen sollen git cherry-pick.
Svick
3

So beantworten Sie Ihre aktualisierte Frage:

Es ist schwer zu sagen, was typisch für Github ist, abgesehen davon, dass normalerweise jedes Projekt anders ist und jeder seinen eigenen bevorzugten Workflow hat. Im Allgemeinen empfiehlt es sich, vor dem Senden einer Pull-Anfrage zu fragen, wie der Workflow ist, oder zu prüfen, ob Sie anhand früherer geschlossener Pull-Anfragen feststellen können.

Meine persönliche Erfahrung war, wenn Sie nicht fragen, dass sie die Pull-Anfrage im Allgemeinen bestenfalls kommentarlos schließen (im schlimmsten Fall) oder einen Kommentar hinterlassen, in dem erläutert wird, wie Sie aufgefordert werden, Ihre Pull-Anfrage zu aktualisieren. Ich werde sagen, dass es seltsam erscheint, wie der Betreuer in Ihrem Fall damit umgegangen ist, aber es mag für sie nur der Weg des geringsten Widerstands gewesen sein. Ich bezweifle, dass es absichtlich dazu gedacht war, Kredite zu stehlen.

Ich würde vorschlagen, dass Sie den Betreuer bitten, eine Dokumentation hinzuzufügen, in der erläutert wird, wie er Pull-Anfragen erhalten möchte und gegen welche Branche, um die Verwirrung und den Kreditmangel in Zukunft zu vermeiden. Ich würde mir wünschen, dass mehr Projekte diese Dokumentation zur Verfügung stellen, da ich denke, dass dies die Bereitschaft der Menschen erhöhen würde, sich an dem Projekt zu beteiligen.

Jacob Schoen
quelle