Есть ли способ изменить способ рисования графиков в TortoiseHg? - PullRequest
16 голосов
/ 07 октября 2010

Я привык к тому, что ClearCase рисует графики, и на первый взгляд пути Mercurial и TortoiseHg путают.

Это , как я хотел бы, чтобы это было представлено: Static position for branches (good) Со статическими позициями для веток. Например. Ветвь обслуживания влево / вправо всегда и желательно по прямой линии, а не по текущей ветви спагетти, которой она является сейчас (см. Ссылку ниже).

Это , как это выглядит при использовании TortoiseHg Explorer. График взят из тестового репозитория. :-) Graph in TortoiseHg (bad)

Есть ли способ изменить способ отображения графиков в Mercurial?

[править]

Проверьте MacHg и как он рисует графики. Это больше соответствует тому, что я хотел бы видеть сам. static/stable graph in MacHg

Ответы [ 2 ]

6 голосов
/ 07 октября 2010

Проблема заключается в том, что любой разветвленный коммит создает «анонимную» ветвь (в отличие от именованной ветки, что немного отличается), и представление графика по умолчанию не может размещать коммиты в статических столбцах, не имея хороших идентификаторов.Таким образом, разработчик сдался, и у нас есть текущий график.

Теперь я думаю, что первое представление, которое вы даете, потрясающее, и должна быть возможность использовать некоторую эвристику для назначения идентификаторов анонимным ветвям в зависимости от (developer1-a, developer2-a, developer2-b и т. д.).Это было бы круто.:)

Время вклада!

Обновление

Что бы я хотел видеть:

  • Фиксированные, отсортированные по вертикалипо времени фиксации, а не по целочисленному номеру ревизии.
  • Фиксируется, сортируется по горизонтали, группируется по именованной ветви и для каждого коммиттера внутри каждой ветви.(И каждый коммит должен быть рядом, если коммиттер разветвил и объединил свои данные.)

Это означает, что алгоритм должен просмотреть все коммиты (которые должны быть просмотрены) перед заполнениемпросмотр и размещение «точек» коммита в правом столбце / строке.

Должно быть достаточно трех проходов для всех коммитов, и каждый может быть выполнен за O (n) время, которое равно O (n).для всего:

  • пройти все, чтобы собрать данные (собрать ветви / коммиттеры) (O (n))
  • сортировать ветви / коммиты в подходящем порядке столбцов
  • сортироватьфиксирует по времени фиксации (O (n log n) или лучше O (n) с радикальной сортировкой по секундам с начала эпохи)
  • walk фиксирует и рисует точки и линии предков в соответствии с группировкой

Может быть, нам нужно быть умным (э-э) при маршрутизации линий между коммитами, но это еще предстоит выяснить.В частности, мы могли бы использовать вертикальное пространство между точками фиксации для соединения слияний, которые находятся далеко друг от друга по вертикали (то есть во времени), вместо использования целого столбца, как текущий алгоритм

3 голосов
/ 07 октября 2010

В настоящее время, кажется, нет ничего доступного для визуализации так, как вы этого хотите.

Полагаю, визуализация обозревателя TortoiseHg прямо из расширения graphlog.

Как бы то ни было, существует визуализация на основе graphviz, хотя она похожа на graphlog, но вы можете взломать ее любым способомсделать визуально лучше.

...