all repos — cgit @ a3722ec3c6660ace9fe637d617a0ca225acfacbc

a hyperfast web frontend for git written in c

Add a cache-snapshot-ttl configuration variable

This can be used to specify the TTL for snapshots. Snapshots are usually
static and do not ever change. On the other hand, tarball generation is
CPU intensive.

One use case of this setting (apart from increasing the lifetime of
snapshot cache slots) is caching of snapshots while disabling the cache
for static/dynamic HTML pages (by setting TTL to zero for everything
except for snapshot requests).

Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
Lukas Fleischer cgit@cryptocrack.de
Wed, 05 Feb 2014 10:23:58 +0100
commit

a3722ec3c6660ace9fe637d617a0ca225acfacbc

parent

7e1c0ed2aa50ed2290f63912897a3724b224b7ea

3 files changed, 12 insertions(+), 0 deletions(-)

jump to
M cgit.ccgit.c

@@ -184,6 +184,8 @@ else if (!strcmp(name, "cache-dynamic-ttl"))

ctx.cfg.cache_dynamic_ttl = atoi(value); else if (!strcmp(name, "cache-about-ttl")) ctx.cfg.cache_about_ttl = atoi(value); + else if (!strcmp(name, "cache-snapshot-ttl")) + ctx.cfg.cache_snapshot_ttl = atoi(value); else if (!strcmp(name, "case-sensitive-sort")) ctx.cfg.case_sensitive_sort = atoi(value); else if (!strcmp(name, "about-filter"))

@@ -331,6 +333,7 @@ ctx.cfg.cache_size = 0;

ctx.cfg.cache_max_create_time = 5; ctx.cfg.cache_root = CGIT_CACHE_ROOT; ctx.cfg.cache_about_ttl = 15; + ctx.cfg.cache_snapshot_ttl = 5; ctx.cfg.cache_repo_ttl = 5; ctx.cfg.cache_root_ttl = 5; ctx.cfg.cache_scanrc_ttl = 15;

@@ -994,6 +997,9 @@ return ctx.cfg.cache_repo_ttl;

if (!strcmp(ctx.qry.page, "about")) return ctx.cfg.cache_about_ttl; + + if (!strcmp(ctx.qry.page, "snapshot")) + return ctx.cfg.cache_snapshot_ttl; if (ctx.qry.has_sha1) return ctx.cfg.cache_static_ttl;
M cgit.hcgit.h

@@ -210,6 +210,7 @@ int cache_root_ttl;

int cache_scanrc_ttl; int cache_static_ttl; int cache_about_ttl; + int cache_snapshot_ttl; int case_sensitive_sort; int embedded; int enable_filter_overrides;
M cgitrc.5.txtcgitrc.5.txt

@@ -88,6 +88,11 @@ Number which specifies the time-to-live, in minutes, for the cached

version of the repository about page. Negative values have infinite ttl. Default value: "15". +cache-snapshot-ttl:: + Number which specifies the time-to-live, in minutes, for the cached + version of snapshots. Negative values have infinite ttl. Default + value: "5". + cache-size:: The maximum number of entries in the cgit cache. Default value: "0" (i.e. caching is disabled).