web-dev-qa-db-fra.com

Comment attribuer un seul commit à plusieurs développeurs?

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?

84
user360907
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

33
Gerry

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 =).

62
Kariem

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.

24
bialix

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.

[1] Différence entre l'auteur et le committer dans Git?

13
Jakub Kukul

Nous ajoutons nos noms à chaque message de validation à la fin comme une convention, par exemple: Implemented cool feature <Aneesh | Hiren>

2
Aneesh

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
2
Dennis

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.

2
Thiago Nobayashi