Как встроить график активности в hgweb - PullRequest
0 голосов
/ 01 июня 2010

Я хотел бы встроить график активности, созданный hgactivity , в мой веб-интерфейс hgweb. Какой лучший способ сделать это?

Вот скриншот графика активности: alt text
Показывает количество коммитов в течение времени в хранилище Mercurial.

Ответы [ 3 ]

5 голосов
/ 01 июня 2010

Трудность, с которой вы столкнетесь, заключается в том, где разместить таблицу, чтобы ее можно было обслуживать. Если вы согласны со стандартным представлением, которое видят все, вы можете использовать задание cron для запуска hg activity и сохранить изображение под стандартным именем файла со статическими файлами hgweb (css и т. Д.). Затем просто настройте шаблон hgweb, добавив тег img, который ссылается на файл изображения. Если ваша работа cron периодически перезаписывает этот файл (ежедневно, ежечасно?), Вы можете приступить к работе.

Если вам нужно что-то более динамичное (пользовательские запросы, определенные диапазоны дат и т. Д.), Вы можете посмотреть (мое) расширение диаграммы hg . Это не такие полные возможности, как hg activity, но у него есть преимущество, заключающееся в том, что он выдает URL-адреса API Google Chart, а не файлы изображений. Пример:

https://chart.apis.google.com/chart?cht=lxy&chs=400x400&chd=e:AAAKAaAjAtA6BHBQBaBkBtB3CACKCUChCqC0C9DHDRDaDkDuD3EBEOEXEhExE7FIFRFbFlFuF4GBGOGeGyG7HFHOHbHlHyIFIVIiIyI8JMJcJlJyJ8KcK2LGLWL8MQMwNDNTNgNqNzOAONOaOjOtO3PAPKPUPdPnPwP6QEQNQXQhQqQ0Q-RORXRnR0SBSLSUSeSrS0S-TITRTeTuT7UIUVUeUoU1VFVPVbVoVyV8WFWPWYWiWsW1W.XJXSXcXmXvX5YGYSYfYpYzY8ZGZTZcZpZzZ8aGaQaZajata6bDbNbWbgbwcDcQcacjc0c9dHdQdadkdtd3eBeNeae3fEfOfXfnf0gOgegug4hBhVhhhrh1h-iIiSibiliyjFjVjlj.kSkckpk1lClSlflvmDmMmWmfmpmznAnJnTncnmnwn5oDoNoWogoqo2pApKpTpdpnpwp9qHqUqdqnq3rArRrkr0r-sKsXshsqs0tLtbtkt0uEuRuou7vFvOvYvivrv4wFwPwfwowyw7xFxPxYxlxvx4yFyVyfypyyy8zGzPzZzizsz20D0M0W0g0p0z081J1T1d1m1w152J2g3Q3q3z4E4Q4g4t5B5K5U5k5u536B6R6r677E7R7h707-8O8b8l8x879F9S9b9o9y97-P-f-o-y-8.F.P.Y.i.s.1..,VnFsKVETK.eWNyCaLTTrSnBdN.MKMVTTHuL8SLLBAbENHZD.HrE8CEKSC1G1H9CiSeJiMb..ItFLFDmnDBIhMKCVFcDbFaCAOuNUEsBtepD3DuBTA6DfGjBoDdDLAuHpAVFWEjI5CYCzAtGWGqFTAhfrDFGxHbFVNZBjE7EBAbDjEaK2CjJXAnHeDpFyGhRSD2OWGJajC.KGHreDISCqGtKVHUCZKbFtCHhId8GrB2EpHRJqItR5A5OSSrOJHgDpKmBHA4D2C1BbE4KBHbCtFHKQW7QpQuKRJDMSEGfDDrDZAeB2VqEPGkHlFHJrHuFFJ-IcB5DQFaGZAaArATA4AJALDaBmCTCkCoAlEtAkEPHpCwE.ETGbFfC9BZJtMJBNBwBPCZHzA3CEAUEiCBBqPdcDIwLnPjFPH3B9S-GNFbDqDaOfdOKcGDKaHeK8IODGJdDXCUCdHADbBQDKCIB1DGAzDCWKLREaCGAFAeA7DEPCA0BZC5FSc0OTC9N7ANKGDGQMEPPfN.BSFHBwJeHiH-FvJlXxEuF1K-M0COEbHHDfB-FKA-TpaADISdHoXiMUMGETE2HnBFBqIYAVATAWA2F5DOEELxNmElS-EDBFFRBBHaEFAyE2AbI9SHDKDSDSFqBtCyFQFZFeBCHhAuCKAibPDlCjXXMRDYKXCq&chxt=y,x&chxl=1:%7c05/03/05%7c03/17/06%7c01/30/07%7c12/15/07%7c10/29/08&chxr=0,0,7166

, который выглядит как: aexample chart

Тогда нет файлов для сохранения или обслуживания. Вы настраиваете свой шаблон, чтобы вызвать небольшой код, который запускает hg chart, вставляете URL в HTML-код страницы и позволяете Google создавать и обслуживать изображение.

2 голосов
/ 01 июня 2010

Я придумал следующую настройку:

Добавить папку активность к шаблону static

Добавить хук группы изменений, называемый активность в hgwebconfig:

[hooks]
changegroup.activity = hg activity --filename /usr/share/mercurial/templates/static/activity/${PWD##*/}.png

$ {PWD ## * /} будет заменен именем папки репозитория (сценарий перехвата запускается в корне репозитория). После запуска (push или pull одного или нескольких наборов изменений) график активности помещается в папку static / Activity папки (по умолчанию) шаблона.

Теперь вы можете добавить следующий HTML-код на страницу шаблона по вашему выбору

<img src="{staticurl}/activity/{repo}.png"/>

Будет загружен самый последний график активности для текущего хранилища.

Оговорка: Вам нужно как минимум одно нажатие после активации этого хука перед созданием изображения.

1 голос
/ 01 сентября 2010

Я запустил проект, в котором есть эта сборка. Вы можете увидеть демо на http://hg.python -works.com Он основан на пилонах и имеет график активности.

...