Задать вопрос
@iv-fyodorov1992

Как визуализовать граф коммитов GIT с помощью php?

есть php.
Есть массив с коммитами из GIT честно распаршенный "git log" и слегка причёсанный вида:
[#ID#] => array (
   [HASH] => #HASH#
   [PARRENTS] => array (
      [0] => #PARRENT_HASH_0#
      ...
      [N] => #PARRENT_HASH_N#
   )
   [CHILDS] => array (
      [0] => #CHILD_HASH_0#
      ...
      [N] => #CHILD_HASH_N#
   )
)

#CHILD_HASH_0#, #PARRENT_HASH_0#, #HASH# - значения хешей соответвующих коммитов
#ID# - просто порядковый номер коммита в массиве от 0 до N (где 0 - самый свежий, а N - самый старый)

Фактически для каждого коммита есть его хеш, а так же хеши его родителей/детей (если они есть).
Если у коммита нет родителей или детей, то там будет пустой массив

Необходимо визуализовать историю ветки по аналогии с github/bitbucket.
Как это сделать?
  • Вопрос задан
  • 805 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
ManWithBear
@ManWithBear
Swift Adept, Prague
git log --graph --oneline
?

UPD. Так это уже вообще другой вопрос получается.
1) Считаем кол-во дней и комитов в них. В итоге получаем число, которое будет шириной изображения в точках
2) Считаем кол-во веток. Получаем высоту изображения в точках.
3) Рисуем коммиты в зависимости от их ветки (ряд) и даты/порядкового номера в дне (столбец)
4) Соединяем комиты внутри одной ветки
5) Для комитов с несколькими потомками соединяем к соответствующим веткам (не забываем о смещение в столбце)

И тут куча места для оптимизаций и улучшений
Ответ написан
@ashumkin
системный разработчик
если графически визуализировать, то graphviz
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы