From 21e0e0bfac660072a4518f91f59d5c4bf6e764b5 Mon Sep 17 00:00:00 2001
From: Ferry Huberts <ferry.huberts@pelagic.nl>
Date: Fri, 13 May 2011 23:09:34 +0200
Subject: ui_repolist: get modtime from packed-refs as fallback

When no modtime could be determined then as a final
fallback try to get it from the packed-refs.

This will show an idle time when a repository has been packed
with all refs in the packed-refs.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
 ui-repolist.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/ui-repolist.c b/ui-repolist.c
index 6f304bb..dce2eac 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -46,11 +46,20 @@ static int get_repo_modtime(const struct cgit_repo *repo, time_t *mtime)
 	}
 
 	path = fmt("%s/refs/heads/%s", repo->path, repo->defbranch);
-	if (stat(path, &s) == 0)
+	if (stat(path, &s) == 0) {
 		*mtime = s.st_mtime;
-	else
-		*mtime = 0;
+		r->mtime = *mtime;
+		return 1;
+	}
+
+	path = fmt("%s/%s", repo->path, "packed-refs");
+	if (stat(path, &s) == 0) {
+		*mtime = s.st_mtime;
+		r->mtime = *mtime;
+		return 1;
+	}
 
+	*mtime = 0;
 	r->mtime = *mtime;
 	return (r->mtime != 0);
 }
-- 
cgit v1.2.3