Code

Unoptimize info/refs creation.
authorJunio C Hamano <junkio@cox.net>
Wed, 14 Sep 2005 20:15:53 +0000 (13:15 -0700)
committerJunio C Hamano <junkio@cox.net>
Thu, 15 Sep 2005 19:46:32 +0000 (12:46 -0700)
The code did not catch the case where you removed an existing ref
without changing anything else.  We are not talking about hundreds of
refs anyway, so remove that optimization.

Signed-off-by: Junio C Hamano <junkio@cox.net>
server-info.c

index 3263035b9316e3822a92201f4dcd35a24bca943d..a9e5607f2f5668411e5742243372bf570c2bda72 100644 (file)
@@ -6,16 +6,6 @@
 
 /* refs */
 static FILE *info_ref_fp;
-static unsigned long info_ref_time;
-static int info_ref_is_stale = 0;
-
-static int stat_ref(const char *path, const unsigned char *sha1)
-{
-       struct stat st;
-       if (!stat(path, &st) && info_ref_time < st.st_mtime)
-               info_ref_is_stale = 1;
-       return 0;
-}
 
 static int add_info_ref(const char *path, const unsigned char *sha1)
 {
@@ -25,7 +15,6 @@ static int add_info_ref(const char *path, const unsigned char *sha1)
 
 static int update_info_refs(int force)
 {
-       struct stat st;
        char *path0 = strdup(git_path("info/refs"));
        int len = strlen(path0);
        char *path1 = xmalloc(len + 2);
@@ -33,21 +22,6 @@ static int update_info_refs(int force)
        strcpy(path1, path0);
        strcpy(path1 + len, "+");
 
-       if (!force) {
-               if (stat(path0, &st)) {
-                       if (errno == ENOENT)
-                               info_ref_is_stale = 1;
-                       else
-                               return error("cannot stat %s", path0);
-               }
-               else {
-                       info_ref_time = st.st_mtime;
-                       for_each_ref(stat_ref);
-               }
-               if (!info_ref_is_stale)
-                       return 0;
-       }
-
        safe_create_leading_directories(path0);
        info_ref_fp = fopen(path1, "w");
        if (!info_ref_fp)