Comment atsortingbuer un seul engagement à plusieurs développeurs?

La façon dont tous les systèmes de contrôle de version que je connais sont que chaque validation est atsortingbuée à un seul développeur. L’essor de l’ingénierie agile, et plus précisément la programmation par paires, a conduit à une situation où deux développeurs ont apporté une consortingbution significative à la même tâche, un correctif par exemple.

La question de l’atsortingbution ne sera pas trop grave dans un environnement de travail puisque le chef de projet sera au courant du travail des paires, mais que se passe-t-il si deux consortingbuteurs open source décident de se coupler et de diffuser du code? à un projet particulier qui n’a aucune idée qu’ils travaillent ensemble. Y at-il un moyen pour un système de contrôle de version comme Git d’atsortingbuer un correctif particulier à plusieurs développeurs?

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 supporter plusieurs auteurs pour un commit

Une convention git consiste à utiliser Co-Authored-By à la fin du message de validation ( kernel git: conventions de validation des messages, faisant référence aux messages de validation Openstack ). C’est aussi l’ une des solutions sur le bogue git-core lié à la réponse de Gerry

 Co-authored-by: Some One  

Dans ce commentaire du 5 mai 2010, Josh Triplett suggère également de mettre en place un support correspondant dans git.

Comme Llopis l’a souligné dans un commentaire, GitHub a annoncé son soutien sur leur 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 de git

https://github.com/pivotal/git_scripts#git-pair

Ce script simple de Pivotal pour automatiser l’atsortingbution de la programmation de paires Git.

Vous créez un fichier .pairs comme:

 # .pairs - configuration for 'git pair' pairs: # :  [; ] eh: Edward Hieatt js: Josh Susser; jsusser sf: Serguei Filimonov; serguei email: prefix: pair domain: pivotallabs.com # no_solo_prefix: true #global: true 

et alors:

 git pair sp js 

ensembles:

 user.name=Josh Susser & Sam Pierson user.email=pair+jsusser+sam@pivotallabs.com 

pour toi.

Je pense que git manque d’une telle fonctionnalité. Cependant, git distingue l’ author un commit et le committer [1]. Vous pouvez l’utiliser comme solution de rechange, par exemple en vous inscrivant en tant que committer et votre co-auteur en tant author :

 GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='a@a' git commit --author 'b ' 

De cette façon, vous et votre co-auteur serez tous deux enregistrés dans l’histoire de git. git log --format=fuller , vous donnera quelque chose comme:

 commit 22ef837878854ca2ecda72428834fcbcad6043a2 Author: b  AuthorDate: Tue Apr 12 06:53:41 2016 +0100 Commit: a  CommitDate: Tue Apr 12 09:18:53 2016 +0000 Test commit. 

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

Nous ajoutons nos noms à chaque message de validation à la fin en tant que convention, par exemple: Implemented cool feature Implemented cool feature

Essayez git-mob , nous l’avons construit pour atsortingbuer des co-auteurs aux commits.

Par exemple

 git mob  git commit git solo 

Il existe également un projet open source sur GitHub qui permet de le faire depuis 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 "

Grâce à cette approche, vous pouvez créer des commits co-créés sans interface graphique.