La façon dont tous les systèmes de contrôle de version que je connais est que chaque validation est attribuée à un seul développeur. L'essor de l'ingénierie agile, et en particulier de la programmation par paires, a conduit à une situation où deux développeurs ont apporté une contribution significative à la même tâche, un bug par exemple.
La question de l'attribution ne sera pas trop importante dans un environnement de travail puisque le chef de projet sera au courant du travail que font les paires, mais qu'en est-il si deux contributeurs open source décident de s'associer et de pousser 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?
Commit title
Commit body
Co-Authored-By: name <[email protected]>
Co-Authored-By: name <[email protected]>
Un problème avec cette approche est que vous ne pouvez pas créer de clé signée pour ce groupe de développeurs, vous pouvez donc essentiellement ajouter n'importe qui à cette liste même s'ils ne travaillent pas sur une fonctionnalité et que github la traiterait comme s'ils le faisaient. Cependant, cela ne devrait pas être un problème dans la plupart des cas.
par exemple. Co-Authored-By: Linus Torvalds <[email protected]>
Avec des auteurs ou des groupes de signature normaux (l'ancienne méthode), vous verriez qu'il n'est pas signé et vous savez que vous ne pouvez pas faire confiance au commit. Cependant, il n'y a pas de processus de signature sur les co-auteurs.
Réponse généralement obsolète:
Une solution serait de définir un nom pour la paire:
git config user.name "Chris Wilson and John Smith"
Voici un rapport de bogue connexe avec d'autres solutions temporaires:
Bug git-core: Git devrait prendre en charge plusieurs auteurs pour un commit
Une convention git consiste à utiliser Co-Authored-By à la fin du message de validation ( git kernel: Commit Message Conventions , se référant à Openstack Commit Messages ). C'est aussi l'une des solutions sur le bug git-core lié dans réponse de Gerry
Co-authored-by: Some One <[email protected]>
Dans ce commentaire du 5 mai 2010, Josh Triplett suggère également de mettre en œuvre le support correspondant dans git.
Comme Llopis l'a souligné dans un commentaire, GitHub a annoncé le support de cela sur son blog le 29 janvier 2018: S'engager avec les co-auteurs ( détails =).
Pour Bazar:
bzr commit --author Joe --author Alice --author Bob
Ces noms seront affichés dans le journal séparément du nom du committer.
paire git
https://github.com/pivotal/git_scripts#git-pair
Ce script simple de Pivotal pour automatiser l'attribution de programmation de paire Git.
Vous créez un .pairs
fichier comme:
# .pairs - configuration for 'git pair'
pairs:
# <initials>: <Firstname> <Lastname>[; <email-id>]
eh: Edward Hieatt
js: Josh Susser; jsusser
sf: Serguei Filimonov; serguei
email:
prefix: pair
domain: pivotallabs.com
# no_solo_prefix: true
#global: true
puis:
git pair sp js
ensembles:
user.name=Josh Susser & Sam Pierson
[email protected]
pour vous.
git fait la distinction entre author
et committer
[1] d'un commit. Vous pouvez l'utiliser comme solution de rechange, par exemple signez-vous en tant que committer
et votre co-auteur en tant que author
:
GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='a@a' git commit --author 'b <b@b>'
De cette façon, vous et votre co-auteur serez enregistrés dans l'historique git. Fonctionnement git log --format=fuller
, vous donnera quelque chose comme:
commit 22ef837878854ca2ecda72428834fcbcad6043a2
Author: b <b@b>
AuthorDate: Tue Apr 12 06:53:41 2016 +0100
Commit: a <a@a>
CommitDate: Tue Apr 12 09:18:53 2016 +0000
Test commit.
Nous ajoutons nos noms à chaque message de validation à la fin comme une convention, par exemple: Implemented cool feature <Aneesh | Hiren>
Essayez git-mob , nous l'avons construit pour attribuer des co-auteurs aux commits.
Par exemple.
git mob <initials of co-authors>
git commit
git solo
Alternativement, il existe un projet open source 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 validations co-autorisées 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.