Code

Revert clock-skew based attempt to optimize tag --contains traversal
authorJunio C Hamano <gitster@pobox.com>
Thu, 14 Jul 2011 18:02:06 +0000 (11:02 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 Jul 2011 18:02:06 +0000 (11:02 -0700)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
.gitignore
Makefile
builtin.h
builtin/skew.c [deleted file]
builtin/tag.c
git.c

index 90aff178605a2a060c27e2181fdfdbf22c30823b..14e2b6bde9bef55d678da8ba44dc180b039cd3ac 100644 (file)
 /git-show-branch
 /git-show-index
 /git-show-ref
-/git-skew
 /git-stage
 /git-stash
 /git-status
index e673bdf60326b3f82723ce672abb00c0c741bcb5..9aca8a16d955e904b4a8f07e70fba754ac65fcc3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -725,7 +725,6 @@ BUILTIN_OBJS += builtin/send-pack.o
 BUILTIN_OBJS += builtin/shortlog.o
 BUILTIN_OBJS += builtin/show-branch.o
 BUILTIN_OBJS += builtin/show-ref.o
-BUILTIN_OBJS += builtin/skew.o
 BUILTIN_OBJS += builtin/stripspace.o
 BUILTIN_OBJS += builtin/symbolic-ref.o
 BUILTIN_OBJS += builtin/tag.o
index 5f5dc0abb8eeb5d1d429924623c480080ae61ca1..ed6ee26933430e1db4e29e62badfaf0b217935ad 100644 (file)
--- a/builtin.h
+++ b/builtin.h
@@ -141,6 +141,5 @@ extern int cmd_verify_pack(int argc, const char **argv, const char *prefix);
 extern int cmd_show_ref(int argc, const char **argv, const char *prefix);
 extern int cmd_pack_refs(int argc, const char **argv, const char *prefix);
 extern int cmd_replace(int argc, const char **argv, const char *prefix);
-extern int cmd_skew(int argc, const char **argv, const char *prefix);
 
 #endif
diff --git a/builtin/skew.c b/builtin/skew.c
deleted file mode 100644 (file)
index 1046f5f..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "cache.h"
-#include "commit.h"
-#include "diff.h"
-#include "revision.h"
-
-unsigned long worst_skew = 0;
-
-static void check_skew_recurse(struct commit *c, unsigned long when)
-{
-       struct commit_list *p;
-
-       if (c->object.flags & SEEN)
-               return;
-       c->object.flags |= SEEN;
-
-       if (parse_commit(c) < 0)
-               return;
-
-       if (c->date > when) {
-               unsigned long skew = c->date - when;
-               if (skew > worst_skew)
-                       worst_skew = skew;
-       }
-
-       for (p = c->parents; p; p = p->next)
-               check_skew_recurse(p->item, c->date < when ? c->date : when);
-}
-
-static void check_skew(struct commit *c)
-{
-       check_skew_recurse(c, time(NULL));
-}
-
-int cmd_skew(int argc, const char **argv, const char *prefix) {
-       struct rev_info revs;
-       int i;
-
-       git_config(git_default_config, NULL);
-       init_revisions(&revs, prefix);
-       argc = setup_revisions(argc, argv, &revs, NULL);
-
-       for (i = 0; i < revs.pending.nr; i++) {
-               struct object *o = revs.pending.objects[i].item;
-               if (o->type == OBJ_COMMIT)
-                       check_skew((struct commit *)o);
-       }
-
-       printf("%lu\n", worst_skew);
-       return 0;
-}
index e4686966913b43da5e911ba9e1102c3831f1c7ec..f7a7943c9ddf783270addc3a50b23496f44fe175 100644 (file)
@@ -25,8 +25,6 @@ static const char * const git_tag_usage[] = {
 
 static char signingkey[1000];
 
-static int core_clock_skew = 86400;
-
 struct tag_filter {
        const char *pattern;
        int lines;
@@ -44,8 +42,7 @@ static int in_commit_list(const struct commit_list *want, struct commit *c)
 }
 
 static int contains_recurse(struct commit *candidate,
-                           const struct commit_list *want,
-                           unsigned long cutoff)
+                           const struct commit_list *want)
 {
        struct commit_list *p;
 
@@ -62,13 +59,9 @@ static int contains_recurse(struct commit *candidate,
        if (parse_commit(candidate) < 0)
                return 0;
 
-       /* stop searching if we go too far back in time */
-       if (candidate->date < cutoff)
-               return 0;
-
        /* Otherwise recurse and mark ourselves for future traversals. */
        for (p = candidate->parents; p; p = p->next) {
-               if (contains_recurse(p->item, want, cutoff)) {
+               if (contains_recurse(p->item, want)) {
                        candidate->object.flags |= TMP_MARK;
                        return 1;
                }
@@ -79,22 +72,7 @@ static int contains_recurse(struct commit *candidate,
 
 static int contains(struct commit *candidate, const struct commit_list *want)
 {
-       unsigned long cutoff = 0;
-
-       if (core_clock_skew >= 0) {
-               const struct commit_list *c;
-               unsigned long min_date = ULONG_MAX;
-               for (c = want; c; c = c->next) {
-                       if (parse_commit(c->item) < 0)
-                               continue;
-                       if (c->item->date < min_date)
-                               min_date = c->item->date;
-               }
-               if (min_date > core_clock_skew)
-                       cutoff = min_date - core_clock_skew;
-       }
-
-       return contains_recurse(candidate, want, cutoff);
+       return contains_recurse(candidate, want);
 }
 
 static int show_reference(const char *refname, const unsigned char *sha1,
@@ -301,14 +279,6 @@ static int git_tag_config(const char *var, const char *value, void *cb)
                return 0;
        }
 
-       if (!strcmp(var, "core.clockskew")) {
-               if (!value || !strcmp(value, "none"))
-                       core_clock_skew = -1;
-               else
-                       core_clock_skew = git_config_int(var, value);
-               return 0;
-       }
-
        return git_default_config(var, value, cb);
 }
 
diff --git a/git.c b/git.c
index 8a77fe314c9ed2cec7d05430750d088f8ed48442..265fa09d8d361ec0dab3626c846906f100cd6949 100644 (file)
--- a/git.c
+++ b/git.c
@@ -399,7 +399,6 @@ static void handle_internal_command(int argc, const char **argv)
                { "verify-pack", cmd_verify_pack },
                { "show-ref", cmd_show_ref, RUN_SETUP },
                { "pack-refs", cmd_pack_refs, RUN_SETUP },
-               { "skew", cmd_skew, RUN_SETUP },
        };
        int i;
        static const char ext[] = STRIP_EXTENSION;