Працюючи з git в команді з використанням функціональних гілок, мені часто важко зрозуміти структуру гілок в історії.
Приклад:
Скажімо, існувала функція гілки функції / make-coffee , і виправлення помилок продовжувалось на master паралельно гілці функції.
Історія може виглядати так:
* 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
|/
*
Проблема
На перший погляд, мені важко сказати, яка сторона є галуззю функції. Зазвичай мені потрібно переглянути кілька коментарів з обох сторін, щоб зрозуміти, що це таке. Це ускладнюється, якщо паралельно є кілька гілок функцій (особливо, якщо вони є для тісно пов’язаних функцій) або якщо відбулося злиття в обох напрямках між гілкою функції та головним.
Навпаки, в Subversion це значно простіше, тому що назва гілки є частиною історії - тому я можу відразу сказати, що спочатку було зроблено зобов’язання щодо "функції / зробити каву".
Git може полегшити це, включивши ім'я поточної гілки у метадані фіксації під час створення комісії (разом із автором, датою тощо). Однак git цього не робить.
Чи є якась фундаментальна причина, чому цього не робиться? Або просто ніхто не хотів цієї функції? Якщо це остання, чи існують інші способи розуміння мети історичних галузей, не бачачи назви?