La façon dont fonctionnent tous les systèmes de contrôle de version que je connais est que chaque commit est attribué à un seul développeur. La montée en puissance de l'ingénierie agile, et plus particulièrement de la programmation par paires, a conduit à une situation où deux développeurs ont apporté une contribution significative à la même tâche, une correction de bogue par exemple.
La question de l'attribution ne sera pas trop importante dans un environnement de travail puisque le chef de projet sera conscient du travail que font les paires, mais qu'en est-il si deux contributeurs open source décident de s'associer et de sortir du code à un projet particulier qui n'a aucune idée qu'ils travaillent ensemble. Existe-t-il un moyen pour un système de contrôle de version comme Git d'attribuer un correctif particulier à plusieurs développeurs?
la source
Réponses:
Un problème avec cette approche est que vous ne pouvez pas créer une clé signée pour ce groupe de développeurs, vous pouvez donc essentiellement ajouter n'importe qui à cette liste même s'il ne fonctionnait pas sur une fonctionnalité et Github la traiterait comme si c'était le cas. Cependant, cela ne devrait pas être un problème dans la plupart des cas.
par exemple
Co-authored-by: Linus Torvalds <[email protected]>
Avec les auteurs normaux ou les groupes de signature (l'ancienne méthode), vous verriez qu'il n'est pas signé et que vous ne pouvez pas faire confiance au commit. Cependant, il n'y a pas de processus de signature pour les co-auteurs.
Réponse principalement obsolète:
Une solution serait de définir un nom pour la paire:
Voici un rapport de bogue associé avec d'autres solutions temporaires:
Bug git-core: Git devrait prendre en charge plusieurs auteurs pour un commit
la source
git show <COMMIT_ID> --format=email
Une convention git consiste à utiliser Co-Authored-By à la fin du message de validation ( git kernel: Commit Message Conventions , faisant référence aux messages de validation Openstack ). C'est aussi l' une des solutions sur le bogue git-core lié dans la réponse de Gerry
Dans ce commentaire du 5 mai 2010, Josh Triplett suggère également d'implémenter le support correspondant dans git.
Comme Llopis l'a souligné dans un commentaire, GitHub a annoncé son soutien à cela sur son blog le 29 janvier 2018: Commit avec les co-auteurs ( détails ).
la source
Pour Bazaar:
Ces noms seront affichés dans le journal séparément du nom du validateur.
la source
git-pair
https://github.com/pivotal/git_scripts#git-pair
Ce simple script de Pivotal pour automatiser l'attribution de la programmation de paires Git.
Vous créez un
.pairs
fichier comme:puis:
ensembles:
pour vous.
la source
git fait la distinction entre un commit
author
etcommitter
[1]. Vous pouvez l'utiliser comme solution de contournement, par exemple vous inscrire en tant quecommitter
et votre co-auteur en tant queauthor
:De cette façon, vous et votre co-auteur serez enregistrés dans l'historique de git. Courir
git log --format=fuller
, vous donnera quelque chose comme:[1] Différence entre auteur et committer dans Git?
la source
Alternativement, il existe un projet open source , dont je suis un contributeur, sur GitHub qui fournit un bon moyen de le faire à partir de la ligne de commande. Ce projet vous aide à définir un alias afin de créer des commits coautorisés comme suit:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
En utilisant cette approche, vous pouvez créer des commits co-créés sans interface graphique.
la source
Nous ajoutons nos noms à chaque message de validation à la fin comme convention, par exemple:
Implemented cool feature <Aneesh | Hiren>
la source
Co-Authored-By
j'ai mentionnée dans une réponse séparéeEssayez git-mob , nous l'avons construit pour attribuer des co-auteurs sur les commits.
Par exemple
la source
La plupart des outils co-auteurs ne prennent pas en charge la saisie semi-automatique. Vous pouvez essayer git-coco , il est écrit en python3 (je suis le développeur).
git-coco
prend en charge la saisie semi-automatique et la suggestion automatique. Voici un instantané de saisie semi-automatique sur des exemples d'auteursla source