Инструмент для просмотра графика изменений Hg, ориентированный на разделение головок и слияния

Графики ревизий могут стать сложными. TortoiseHg неплохо визуализирует это, например:

пример графика изменений Hg

Однако это слишком много деталей, чтобы концептуально понять, как различные именованные ветки выполняют или не используют общий код. Я ищу способ визуализации подобных графиков, но с такими требованиями:

Важно :

  • Будьте похожи на визуализацию TortoiseHg по умолчанию: используйте визуальные подсказки (например, цвет), чтобы различать ветки, и визуальную подсказку, чтобы видеть порядок коммитов (например, самые новые коммиты вверху) и показывать номера ревизий для узлов;
  • Для коммитов между двумя соответствующими 1 коммитами разделения/слияния: либо уплотните их в один узел, либо аннотируйте соответствующее ребро (предпочтительно), либо просто скройте их.
  • Покажите более заметно, к какой именованной ветви принадлежит набор узлов/ребер.
  • Уметь выбирать диапазон (период или коммиты).
  • Дайте мгновенное представление о потоке кода через ветки: например, 1000 коммитов (из которых 40 разделены/объединены между именованными ветвями) в 8 разных именованных ветвях должны поместиться на одном экране.
  • бесплатно.

1 Релевантны только разделения/слияния между именованными ветвями; разбиения/слияния внутри одной ветки по умолчанию мне не интересны, меня волнует поток кода между именованными ветками. Возможность увидеть и второй тип — «Приятно иметь», см. ниже.

Приятно иметь :

  • Также важна возможность указания разделения/объединения внутри одной именованной ветки. (См. 1 выше.)
  • См. автора коммитов.
  • Всплывающая подсказка со сводкой «сжатого» узла/ребра (см. требование выше).

Есть ли какое-либо бесплатное программное обеспечение, которое соответствует моим потребностям? Может ли TortoiseHg сделать это? Или мне следует переключиться на другой графический интерфейс Hg, в котором есть это?

Ответы (1)

Немного поигравшись с TortoiseHg, вы сможете сделать более или менее то, о чем вы просите, используя revsetфильтр на панели фильтров.

Сначала убедитесь, что панель фильтров видна, выбрав в меню просмотра или нажав ctrl-S, затем в фильтре revset попробуйте ввести:

children(branchpoint() or merge()) or parents(branchpoint() or merge())

Это должно выбрать представление всех дочерних и родительских элементов тех наборов изменений, которые являются либо точками ветвления, либо точками слияния. Я уверен, что немного поиграв с наборами изменений, вы сможете получить более или менее то, что вам нужно.

Приносим извинения за фаззинг, но должны соблюдать конфиденциальность:Нечеткий пример