Qual è il messaggio di commit corretto in un repository multi-progetto

2

Da qualche altra parte lì era una discussione su mettere diversi progetti in un unico grande archivio. La mia domanda è: come appare un buon messaggio di commit in quel tipo di repository?

Di solito antepongo ogni messaggio di commit (tramite git hook) con un ID di storia JIRA [XYZ-123] e poi aggiungo le informazioni sul commit. Tuttavia, avendo 10 o 20 progetti in un repository, è difficile sapere a quale progetto si riferisce il commit. Aggiungere un nome di progetto nel messaggio di commit potrebbe essere una possibilità, a costo di ridurre lo spazio dei commenti.

In che modo altri programmatori si sono occupati di questo?

    
posta obaqueiro 21.05.2015 - 23:46
fonte

1 risposta

1

Non penso che i progetti in questione siano uguali a quelli del tuo caso.

I progetti in questa domanda sono build projects - sono tutti componenti diversi della stessa applicazione, divisi in progetti per la facilità di creazione e rilascio. Tali progetti, anche se collocati in repository diversi, dovrebbero condividere lo stesso progetto nell'ALM, perché i ticket raramente mappano in modo pulito su un singolo componente:

  • Quando apri un ticket di richiesta di funzionalità, l'implementazione spesso richiede la modifica di più componenti. Il dover aprire i biglietti in tutti i diversi progetti non è solo ingombrante, ma divide la discussione del design in molte sezioni di commenti e rende difficile seguirlo.
  • Quando apri una segnalazione di bug, puoi solo indovinare a quale componente appartiene il bug fino a quando non indagherai e non vuoi rinviare l'apertura del ticket fino all'indagine (che potrebbe essere eseguita da qualcuno che non sia l'apri del biglietto ) è fatta. Inoltre, sebbene non così spesso come nuove funzionalità, alcuni bug devono essere risolti in più componenti.

Nel tuo caso, dal momento che ritieni ragionevole avere un progetto JIRA per ogni progetto, assumerò che siano progetti reali, ognuno dei quali è un'applicazione. Se ho ragione, non dovresti metterli tutti nello stesso repository! Ha un vantaggio molto importante nella domanda a cui si fa riferimento: consente di inserire le stesse modifiche a più componenti che dipendono l'uno dall'altro. Ma nel tuo caso questo è semplicemente non pertinente - non vi è alcuna giustificazione per avere messaggi di commit che assomigliano a:

- Add UTF-32 encoding support to SuperTextEditor
- Fix weird crash in AwesomeMusicPlayer
- Switch the default browsing algorithm in AmazingArchiver

Queste sono tutte diverse modifiche a diversi progetti che appartengono a commit diversi, e non ci può essere alcuna ragione per cui vuoi raggrupparli insieme nello stesso commit - questi progetti dovrebbero essere ciascuno nel suo repository.

Mettere più progetti nello stesso repository è pensare in SVN. SVN è un orribile SCM con un design terribile che ti costringe a usare alcuni hack raccapriccianti altrimenti non troverai la forza mentale per resistere alla discussione di lasciare il tuo ufficio al decimo piano dalla finestra anziché dalla porta. Mettere più progetti in un repository è uno di questi hack, usato principalmente perché è così difficile tenere traccia di più repository SVN. Git non ha questo problema, quindi usa solo repository separati per progetti separati!

    
risposta data 22.05.2015 - 00:37
fonte

Leggi altre domande sui tag