Hallo, in der TroLUG arbeiten ja viele mit Git und Github, es gab ja auch schon mehrere Vorträge dazu.
Mich würden mal eure Meinungen zum Umgang mit Pull Requests interessieren. Was würdet ihr machen, wenn ihr zu einem von euch auf Github eingestellten Projekt ohne vorherige Ankündung von einem bisher unbekannten User einen Pull Request bekommt? Der Request führt mehrere thematisch unterschiedliche Änderungen ein. Einen Teil davon möchte ich definitiv nicht übernehmen. Bei einem anderen sehe ich prinzipiell die Notwendigkeit einer Änderung, aber es gibt mehrere denkbare Optionen und ich bin noch unschlüssig. Der vom Sourcecode-Umfang her größte Teil ist durchaus in Ordnung, müsste allerdings noch ein bisschen überarbeitet werden, außerdem wurde bei der Dokumentation geschlampt. Der Pull Request besteht aus einem einzelnen Commit mit allen Änderungen, ein Cherry-Picking im Git-Sinne ist nicht möglich. Einerseits freue ich mich ja, dass andere mit meinen Tools arbeiten und sich an der Weiterentwicklung beteiligen wollen, und möche den Interessenten nicht vergraulen. Andererseits möchte ich gewisse Mindesstandards durchsetzen, immerhin erscheint das Projekt unter meinem Namen. Ich sehe nun drei Möglichkeiten: (1) Den Pull Request annehmen (in einem eigenen Branch), ihn nach meinen Vorstellungen überarbeiten (und dabei Teile der neu eingeführten Funktionalität wieder entfernen) und dann nach master mergen. Das hat den Vorteil, dass die eine Hauptänderung unter dem Namen des Autors in der Commit History erscheint, aber trotzdem keine unerwünschten Änderungen in master Branch landen. Nachteile sind aber, dass ich eigentlich einen Teil der Änderungen auch in einem Seitenbranch nicht sehen möchte, schließlich kann jeder den später pullen (warum auch immer). Außerdem soll es nicht den Eindruck erwecken, dass jeder alles abkippen kann und ich hinter ihm aufräume. (2) Den Pull Request ablehnen und die eine erwünschte Änderung selber (ggf. per Copy-Paste aus dem Diff) durchführen. Somit erscheint nur diese Änderung in der Commit History und die Dokumentation wird sauber mitgeführt. Allerdings erscheint dieser Commit unter meinem Namen, die Urheberschaft des Einreichers ist an der History nicht erkennbar und Github führt ihn in den "Insights" weiterhin nicht als Beitragenden. (3) Verhandeln mit dem Autor, bis er den Pull Request soweit anpasst, dass er meinen Vorstellungen entspricht. Das hat den Vorteil, dass dann sein Name zu seinem Code in der History erscheint. Allerdings könnte er zwischendrin die Lust verlieren, insbesondere wenn sich die Verhandlung über mehrere Iterationen hinzieht oder das Resultat sich zu weit von seinem ursprünglichen Beitrag entfernt. Erschwerend kommt hinzu, dass ich mir an der einen Stelle selber noch unsicher bin, welches die beste Lösung ist. Was meint ihr? Gruß, Harald
