Quando lavoro con git in una squadra che usa le branch caratteristiche, lo trovo spesso difficile capire la struttura del ramo nella storia.
Esempio:
Diciamo che c'era un ramo di funzione feature / make-coffee e bugfixing continuato su master in parallelo al ramo della funzione.
La cronologia potrebbe essere simile a questa:
* merge feature/make-coffee
|\
| * small bugfix
| |
* | fix bug #1234
| |
| * add milk and sugar
| |
* | improve comments
| |
* | fix bug #9434
| |
| * make coffe (without milk or sugar)
| |
* | improve comments
|/
*
problema
A prima vista, trovo difficile capire da che parte si tratta ramo. Di solito ho bisogno di sfogliare diversi commenti su entrambi i lati per ottenere un'idea di quale è quale. Questo diventa più complicato se ci sono più feature branch in parallelo (in particolare se sono per caratteristiche strettamente correlate), o se ci fosse una fusione in entrambe le direzioni tra feature branch e master.
Come contrasto, in Subversion, questo è significativamente più facile perché il il nome del ramo è parte della storia - quindi posso dire subito che a il commit è stato originariamente realizzato in "feature / make-coffee".
Git potrebbe renderlo più facile includendo il nome del ramo corrente nei metadati di commit durante la creazione di un commit (insieme all'autore, data eccetera.). Tuttavia, git non lo fa.
C'è qualche motivo fondamentale per cui ciò non viene fatto? O è solo che nessuno voleva la funzione? Se è il secondo, ci sono altri modi di comprendere lo scopo dei rami storici senza vedere il nome?