Podczas pracy z git w zespole używającym gałęzi funkcji często trudno mi zrozumieć strukturę gałęzi w historii.
Przykład:
Powiedzmy, że istniała funkcja gałęzi / make-coffee , a usuwanie błędów było kontynuowane na master równolegle do gałęzi funkcji.
Historia może wyglądać następująco:
* 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
|/
*
Problem
Na pierwszy rzut oka trudno mi stwierdzić, po której stronie jest gałąź funkcji. Zwykle muszę przejrzeć kilka komentarzy po obu stronach, aby dowiedzieć się, który jest który. Staje się to bardziej skomplikowane, jeśli istnieje wiele gałęzi elementów równolegle (szczególnie jeśli dotyczą one blisko powiązanych elementów) lub jeśli nastąpiło scalenie w obu kierunkach między gałęzią elementów a wzorcem.
Dla kontrastu w Subversion jest to znacznie łatwiejsze, ponieważ nazwa gałęzi jest częścią historii - więc mogę od razu powiedzieć, że zatwierdzenie zostało pierwotnie dokonane na „feature / make-coffee”.
Git mógłby to ułatwić, włączając nazwę bieżącego oddziału do metadanych zatwierdzenia podczas tworzenia zatwierdzenia (wraz z autorem, datą itp.). Jednak git tego nie robi.
Czy istnieje jakiś fundamentalny powód, dla którego tak się nie dzieje? A może po prostu nikt nie chciał tej funkcji? Jeśli to drugie, czy istnieją inne sposoby zrozumienia celu historycznych gałęzi bez poznania nazwy?