Ich habe auf Github ein großartiges Projekt mit einer nützlichen zentralen Funktion gefunden, das jedoch beim "Polieren" von Fehlerbehandlung, Protokollierung, Konfiguration und Einrichtung grob ist. Das Projekt ist 5 Jahre unberührt und nur ein paar hundert Codezeilen. Trotzdem ist es nützlich genug, um sich für eine anständige Anzahl von Beobachtern und eine Handvoll Gabeln zu interessieren.
Für meine Verwendung war eine spezielle Ergänzung erforderlich, aber zuvor habe ich einige Aufräumarbeiten durchgeführt. Dann war ich ein wenig von Ingenieuren besessen und fügte im Laufe einer Woche ein Protokollierungssystem, viel Protokollierung, ein automatisiertes Setup, eine Konfiguration hinzu, die aus dem Code heraus und in externe Konfigurationsdateien (und Code zum Lesen) berücksichtigt wurde. plus ein paar Bugfixes, so wie ich sie gefunden habe.
Ich denke, alle meine Änderungen sind vernünftig / gut und müssen von einem Publikum verwendet werden können. Aber es gibt viele Commits, fast so viele wie das Repo ursprünglich (Vermeidung von Zahlen, um diesen General beizubehalten). Außerdem zeigt Git-Schuld, dass ich fast jede Zeile dieser (kleinen!) Codebasis berührt habe. Ich suche keine Kontrolle über das Projekt oder auch nur eine Anerkennung für das, was ich getan habe. Aber angesichts der Wahl würde ich gerne sehen, dass meine Änderungen zusammengeführt werden, damit jeder davon profitieren kann, anstatt sich in einer Gabelung auf meinem unbekannten Github zu verstecken.
Ich habe noch nie eine Pull-Anfrage eingereicht, aber ich weiß, dass sie klein und leicht zu überprüfen sein sollten. Doch hier habe ich eine Menge transformativer Veränderungen vorgenommen.
Meine Verpflichtungen sind sehr sauber, da ich mich durchweg sorgfältig um die Geschichte gekümmert habe. Es wäre jedoch schwierig, sie in mehrere Zweige / Pull-Anforderungen zu unterteilen, da ein Großteil davon notwendigerweise auf sich selbst aufbaut. Zum Beispiel basiert die Konfigurations-Externalisierung auf einer vorbereitenden Bereinigung, und das Setup ist teilweise zum Auffüllen dieser Konfigurationen vorhanden. Die Protokollierung wird durch die im Setup erstellten externen Konfigurationen usw. aktiviert und konfiguriert. Davon abgesehen bin ich sehr bereit Tu was ich kann, um diese riesige Pille schmackhafter zu machen. Ich weiß nur nicht, was das sein würde. Ich könnte ein paar Commits aufteilen, aber die große Überholung ist immer noch groß.
Was kann man also tun, wenn jemandes Projekt versehentlich überarbeitet wird?
Sollte ich einfach meine Lektion lernen, dies nicht zu tun und meine Änderungen in meiner Gabel für mich behalten? Sollte ich nur eine Pull-Anfrage stellen und sehen, was passiert? Sollte ich ein paar Worte verwenden, um mich in der Beschreibung zu erklären? Soll ich es auf eine bestimmte Weise präsentieren?