我想在hgweb webinterface中嵌入由hgactivity创建的活动图。这样做的最佳方法是什么?
以下是hgactivity图的屏幕截图:
它显示了到Mercurial存储库的时间提交次数。
答案 0 :(得分:5)
您将遇到的难点在于放置图表以便提供服务。如果您有一个标准视图,每个人都看到您可以使用cron作业运行hg activity
并使用hgweb静态文件(css等)将图像保存到标准文件名。然后只需调整hgweb模板以包含引用图像文件的img标记。如果您的cron作业定期覆盖该文件(每天,每小时?),那么您将会很高兴。
如果您需要更具动态性(用户特定查询,特定日期范围等),您可能需要查看(我的)hg chart extension。它不是hg activity
的完整功能,但它确实具有吐出谷歌图表API网址而不是图像文件的优势。例如:
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
看起来像:
然后没有要保存或服务的文件。您调整模板以调用运行hg chart
的小代码,将URL插入页面的HTML中,然后让google创建并提供图像。
答案 1 :(得分:2)
我想出了以下设置:
将文件夹活动添加到模板静态
在hgwebconfig中添加名为activity的changegroup hook:
[hooks]
changegroup.activity = hg activity --filename /usr/share/mercurial/templates/static/activity/${PWD##*/}.png
$ {PWD ## * /}将替换为存储库的文件夹名称(钩子脚本在存储库的根目录中运行)。 触发(推或拉一个或多个变更集)后,活动图表将放置在(默认)模板文件夹的static / activity文件夹中。
现在,您可以将以下HTML添加到首选项的模板页面
<img src="{staticurl}/activity/{repo}.png"/>
这将加载当前存储库的最新活动图。
警告: 在创建图像之前,激活此挂钩后至少需要一次按下。
答案 2 :(得分:1)
我启动了一个具有此内置功能的项目。您可以看到一个演示 http://hg.python-works.com它是以pylons为基础并有活动图。