From c6d72c49720aa333e9c646f447147e8e546df174 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 14 Jul 2011 11:02:06 -0700 Subject: Revert clock-skew based attempt to optimize tag --contains traversal Signed-off-by: Junio C Hamano diff --git a/.gitignore b/.gitignore index 90aff17..14e2b6b 100644 --- a/.gitignore +++ b/.gitignore @@ -132,7 +132,6 @@ /git-show-branch /git-show-index /git-show-ref -/git-skew /git-stage /git-stash /git-status diff --git a/Makefile b/Makefile index e673bdf..9aca8a1 100644 --- 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 diff --git a/builtin.h b/builtin.h index 5f5dc0a..ed6ee26 100644 --- 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 index 1046f5f..0000000 --- a/builtin/skew.c +++ /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; -} diff --git a/builtin/tag.c b/builtin/tag.c index e468696..f7a7943 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -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 8a77fe3..265fa09 100644 --- 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; -- cgit v0.10.2-6-g49f6