Revert clock-skew based attempt to optimize tag --contains traversal

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2011-07-14 11:02:06 -07:00
parent 188c35e36d
commit c6d72c4972
6 changed files with 3 additions and 87 deletions

View 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);
}