Alle Versionskontrollsysteme, mit denen ich vertraut bin, arbeiten so, dass jedes Commit einem einzelnen Entwickler zugeordnet wird. Der Aufstieg von Agile Engineering und insbesondere der Paarprogrammierung hat zu einer Situation geführt, in der zwei Entwickler einen wesentlichen Beitrag zur gleichen Aufgabe geleistet haben, beispielsweise eine Fehlerbehebung.
Das Problem der Attribution wird in einer Arbeitsumgebung keine große Rolle spielen, da der Projektmanager über die Arbeit der Paare informiert ist. Was ist jedoch, wenn zwei Open-Source-Mitarbeiter beschließen, Code zu koppeln und herauszubringen? zu einem bestimmten Projekt, das keine Ahnung hat, dass sie zusammenarbeiten. Gibt es eine Möglichkeit für ein Versionskontrollsystem wie Git, einen bestimmten Patch mehreren Entwicklern zuzuweisen?
quelle
Antworten:
Ein Problem bei diesem Ansatz besteht darin, dass Sie keinen signierten Schlüssel für diese Gruppe von Entwicklern erstellen können. Sie können also im Wesentlichen jeden zu dieser Liste hinzufügen, selbst wenn er nicht an einem Feature gearbeitet hat und Github ihn so behandelt, als ob er es getan hätte. Dies sollte jedoch in den meisten Fällen kein Problem sein.
z.B
Co-authored-by: Linus Torvalds <[email protected]>
Bei normalen Autoren oder Signiergruppen (die alte Methode) sehen Sie, dass sie nicht signiert sind, und wissen, dass Sie dem Commit nicht vertrauen können. Es gibt jedoch keinen Unterzeichnungsprozess für Co-Autoren.
Meist veraltete Antwort:
Eine Lösung wäre, einen Namen für das Paar festzulegen:
Hier ist ein verwandter Fehlerbericht mit anderen temporären Lösungen:
Bug Git-Core: Git sollte mehrere Autoren für ein Commit unterstützen
quelle
git show <COMMIT_ID> --format=email
Eine Git-Konvention besteht darin, Co-Authored-By am Ende der Commit-Nachricht zu verwenden ( Git-Kernel: Commit-Nachrichten-Konventionen , die sich auf Openstack-Commit-Nachrichten beziehen ). Dies ist auch eine der Lösungen für den Git-Core-Fehler, der in Gerrys Antwort verlinkt ist
In diesem Kommentar vom 5. Mai 2010 schlägt Josh Triplett auch vor, entsprechende Unterstützung in git zu implementieren.
Wie Llopis in einem Kommentar betonte, kündigte GitHub am 29. Januar 2018 in seinem Blog Unterstützung dafür an: Commit zusammen mit Co-Autoren ( Details ).
quelle
Für Basar:
Diese Namen werden im Protokoll getrennt vom Namen des Committers angezeigt.
quelle
Git-Paar
https://github.com/pivotal/git_scripts#git-pair
Dieses einfache Skript von Pivotal zur Automatisierung der Programmierung von Git-Paaren.
Sie erstellen eine
.pairs
Datei wie:und dann:
Sätze:
für dich.
quelle
git unterscheidet zwischen einem Commit
author
undcommitter
[1]. Sie können es als Workaround verwenden, z. B. sich selbst alscommitter
und Ihren Co-Autor alsauthor
:Auf diese Weise werden sowohl Sie als auch Ihr Co-Autor in der Git-Historie aufgezeichnet. Laufen
git log --format=fuller
gibt dir so etwas wie:[1] Unterschied zwischen Autor und Committer in Git?
quelle
Alternativ gibt es auf GitHub ein Open-Source-Projekt , an dem ich beteiligt bin, das eine gute Möglichkeit bietet, dies über die Befehlszeile zu tun. In diesem Projekt können Sie einen Alias festlegen, um gemeinsam automatisierte Commits wie folgt zu erstellen:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
Mit diesem Ansatz können Sie gemeinsam verfasste Commits ohne grafische Oberfläche erstellen.
quelle
Wir fügen unsere Namen zu jeder Festschreibungsnachricht am Ende als Konvention hinzu, z.
Implemented cool feature <Aneesh | Hiren>
quelle
Co-Authored-By
ich in einer separaten Antwort erwähnt habeVersuchen Sie es mit git-mob . Wir haben es entwickelt, um Co-Autoren Commits zuzuweisen.
Z.B
quelle
Die meisten Co-Author-Tools unterstützen die automatische Vervollständigung nicht. Sie können Git-Coco ausprobieren , das in Python3 geschrieben ist (ich bin der Entwickler).
git-coco
unterstützt Autocomplete und Auto-Suggestion. Hier ist eine automatische Vervollständigung des Schnappschusses der Beispielautorenquelle