2011-09-16 13 views
57

Il modo in cui tutti i sistemi di controllo delle versioni con cui ho familiarità è che ogni commit è attribuito a un singolo sviluppatore. L'ascesa di Agile Engineering, e in particolare la paia di programmazione, ha portato a una situazione in cui due sviluppatori hanno dato un contributo significativo alla stessa attività, ad esempio una correzione di bug.Come attribuire un singolo commit a più sviluppatori?

Il problema dell'attribuzione non sarà un grosso problema in un ambiente di lavoro dal momento che il project manager sarà a conoscenza del lavoro che le coppie stanno facendo, ma che dire se due contributori open source decidono di accoppiarsi e spingere un po 'di codice in un particolare progetto che non ha idea di lavorare insieme. C'è un modo per un sistema di controllo della versione come Git per attribuire una particolare patch a più sviluppatori?

+8

Deve essere diviso per ciascun sistema di controllo versione. –

risposta

2

aggiungiamo la nostra nomi di ogni commit messaggio alla fine come una convenzione es .: Implemented cool feature <Aneesh | Hiren>

+3

Questo è simile alla convenzione git 'Co-Authored-By' che ho citato in [una risposta separata] (http://stackoverflow.com/a/41847267/12039) – Kariem

17

Per il Bazar:

bzr commit --author Joe --author Alice --author Bob 

Questi nomi verranno visualizzati nel registro separatamente dal nome del committente.

19

git-pair

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

Questo semplice script da Pivotal per automatizzare Git coppia di programmazione attribuzione.

si crea un file .pairs come:

# .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 

e poi:

git pair sp js 

set:

user.name=Josh Susser & Sam Pierson 
[email protected] 

per voi.

8

Penso che git manchi di una tale caratteristica. Tuttavia, Git distingue tra un commit di author e committer [1]. Puoi usarlo come soluzione alternativa, ad es. firmare se stessi come l'committer e la tua co-autore come author:

GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='[email protected]' git commit --author 'b <[email protected]>' 

In questo modo, voi e il vostro co-autore verrà registrato nella storia git.Esecuzione git log --format=fuller, vi darà qualcosa di simile:

commit 22ef837878854ca2ecda72428834fcbcad6043a2 
Author:  b <[email protected]> 
AuthorDate: Tue Apr 12 06:53:41 2016 +0100 
Commit:  a <[email protected]> 
CommitDate: Tue Apr 12 09:18:53 2016 +0000 

    Test commit. 

[1] Convenzione Difference between author and committer in Git?

20

A git è quello di utilizzare co-autore-By alla fine del messaggio di commit (git kernel: Commit Message Conventions, riferendosi a Openstack Commit Messages). Questo è anche one of the solutions sulla git-core bug collegato in Gerry's answer

Co-authored-by: Some One <[email protected]> 

In quel commento il 5 maggio 2010 Josh Triplett anche suggerisce attuando supporto git corrispondente.

Come Llopis sottolineato in un commento, GitHub annunciato il supporto per questo sul loro blog il 29 gennaio, 2018: Commit together with co-authors (details).

+1

Questo è ora [supportato] (https: // help.github.com/articles/creating-a-commit-with-multiple-authors/) di GitHub. – Llopis

+0

@Llopis Ho appena visto il post sul blog e sono venuto qui per aggiornare la mia risposta. Bello vedere qualcuno è stato più veloce :) – Kariem

Problemi correlati