Проблема заключается в том, что любой разветвленный коммит создает «анонимную» ветвь (в отличие от именованной ветки, что немного отличается), и представление графика по умолчанию не может размещать коммиты в статических столбцах, не имея хороших идентификаторов.Таким образом, разработчик сдался, и у нас есть текущий график.
Теперь я думаю, что первое представление, которое вы даете, потрясающее, и должна быть возможность использовать некоторую эвристику для назначения идентификаторов анонимным ветвям в зависимости от (developer1-a, developer2-a, developer2-b и т. д.).Это было бы круто.:)
Время вклада!
Обновление
Что бы я хотел видеть:
- Фиксированные, отсортированные по вертикалипо времени фиксации, а не по целочисленному номеру ревизии.
- Фиксируется, сортируется по горизонтали, группируется по именованной ветви и для каждого коммиттера внутри каждой ветви.(И каждый коммит должен быть рядом, если коммиттер разветвил и объединил свои данные.)
Это означает, что алгоритм должен просмотреть все коммиты (которые должны быть просмотрены) перед заполнениемпросмотр и размещение «точек» коммита в правом столбце / строке.
Должно быть достаточно трех проходов для всех коммитов, и каждый может быть выполнен за O (n) время, которое равно O (n).для всего:
- пройти все, чтобы собрать данные (собрать ветви / коммиттеры) (O (n))
- сортировать ветви / коммиты в подходящем порядке столбцов
- сортироватьфиксирует по времени фиксации (O (n log n) или лучше O (n) с радикальной сортировкой по секундам с начала эпохи)
- walk фиксирует и рисует точки и линии предков в соответствии с группировкой
Может быть, нам нужно быть умным (э-э) при маршрутизации линий между коммитами, но это еще предстоит выяснить.В частности, мы могли бы использовать вертикальное пространство между точками фиксации для соединения слияний, которые находятся далеко друг от друга по вертикали (то есть во времени), вместо использования целого столбца, как текущий алгоритм