Ao trabalhar com o git em uma equipe usando ramificações de recursos, muitas vezes acho difícil entender a estrutura da ramificação no histórico.
Exemplo:
Digamos que havia um recurso de ramificação de recurso / café , e a correção de erros continuou no mestre em paralelo ao ramo de recurso.
A história pode ficar assim:
* 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
À primeira vista, acho difícil dizer de que lado é o ramo do recurso. Normalmente, preciso procurar vários comentários de ambos os lados para ter uma idéia de qual é qual. Isso fica mais complicado se houver várias ramificações de recurso em paralelo (principalmente se forem para recursos intimamente relacionados) ou se houver uma fusão nas duas direções entre a ramificação de característica e o mestre.
Por outro lado, no Subversion, isso é significativamente mais fácil, porque o nome do ramo faz parte da história - para que eu possa dizer imediatamente que um commit foi originalmente feito em "feature / make-coffee".
O Git pode facilitar isso ao incluir o nome da ramificação atual nos metadados de confirmação ao criar uma confirmação (junto com autor, data etc.). No entanto, o git não faz isso.
Existe alguma razão fundamental para que isso não seja feito? Ou será que ninguém queria o recurso? Se for o último, existem outras maneiras de entender o propósito dos ramos históricos sem ver o nome?