Как заставить hgweb отображать репозитории в иерархии?

#mercurial #hgweb

#mercurial #hgweb

Вопрос:

У меня есть около 100 репозиториев Mercurial, обслуживаемых hgweb . Репозитории хранятся в иерархии папок, но hgweb отображают структуру «плоским» образом. Это не масштабируется. Есть ли способ отображать репозитории в виде древовидной иерархии вместо этого?

Ответ №1:

Мне нравится организовывать свои репозитории по типу, вот как выглядит моя конфигурация hgweb:

 [web]
baseurl =

[paths]
/apps = /var/hg/apps/*
/config = /var/hg/config/*
/design = /var/hg/design/*
/music = /var/hg/music/*
/projects = /var/hg/projects/*
/scripts = /var/hg/scripts/*
  

Вы также можете использовать **, чтобы заставить его отображать каталоги рекурсивно.

 [paths]
/ = /var/hg/**
  

Ознакомьтесь с документами для получения других деталей / опций:http://www.selenic.com/mercurial/hgrc.5.html#web.

Вас также может заинтересовать RhodeCode, который является более многофункциональным веб-интерфейсом для mercurial.

Комментарии:

1. В последней бета-версии RhodeCode есть группа репозиториев, поэтому она идеально подходит для управления большим количеством репозиториев

2. Я думал, что * позволяет отображать рекурсивные каталоги и ** позволяет отображать вложенные репозитории?

Ответ №2:

Я не уверен, была ли такая опция на момент вопроса, но теперь есть опция, которая позволяет переходить в каталоги.

 [web]
descend = True
  

Затем у вас есть два варианта настройки ваших путей. Если вы укажете путь с одной звездочкой, он будет переходить в подкаталоги, пока не найдет репозитории.

 [paths]
/ = /var/hg/*
  

Если вы укажете путь с двумя звездочками, он также перейдет к репозиториям, чтобы увидеть, есть ли вложенные репозитории или подрепозитарии.

 [paths]
/ = /var/hg/**
  

Вы можете найти более подробную информацию в Mercurial wiki по адресу PublishingRepositories.

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

Ответ №3:

У меня была такая же проблема, и я решил ее, включив collapse опцию:

 [web]
collapse = yes