list = list->next;
if (commit->object.flags & UNINTERESTING)
continue;
- if (interesting_cache)
- *interesting_cache = commit;
+
+ *interesting_cache = commit;
return 0;
}
return 1;
parent = parent->next;
if (p)
p->object.flags |= UNINTERESTING;
- if (parse_commit(p) < 0)
+ if (parse_commit_gently(p, 1) < 0)
continue;
if (p->parents)
mark_parents_uninteresting(p);
for (parent = commit->parents; parent; parent = parent->next) {
struct commit *p = parent->item;
- if (parse_commit(p) < 0)
+ if (parse_commit_gently(p, revs->ignore_missing_links) < 0)
return -1;
if (revs->show_source && !p->util)
p->util = commit->util;
return 0;
}
-static int handle_one_ref(const char *path, const unsigned char *sha1, int flag, void *cb_data)
+static int handle_one_ref(const char *path, const struct object_id *oid,
+ int flag, void *cb_data)
{
struct all_refs_cb *cb = cb_data;
struct object *object;
if (ref_excluded(cb->all_revs->ref_excludes, path))
return 0;
- object = get_reference(cb->all_revs, path, sha1, cb->all_flags);
+ object = get_reference(cb->all_revs, path, oid->hash, cb->all_flags);
add_rev_cmdline(cb->all_revs, object, path, REV_CMD_REF, cb->all_flags);
- add_pending_sha1(cb->all_revs, path, sha1, cb->all_flags);
+ add_pending_sha1(cb->all_revs, path, oid->hash, cb->all_flags);
return 0;
}
int (*for_each)(const char *, each_ref_fn, void *))
{
struct all_refs_cb cb;
- struct each_ref_fn_sha1_adapter wrapped_handle_one_ref =
- {handle_one_ref, &cb};
-
init_all_refs_cb(&cb, revs, flags);
- for_each(submodule, each_ref_fn_adapter, &wrapped_handle_one_ref);
+ for_each(submodule, handle_one_ref, &cb);
}
static void handle_one_reflog_commit(unsigned char *sha1, void *cb_data)
return 0;
}
-static int handle_one_reflog(const char *path, const unsigned char *sha1, int flag, void *cb_data)
+static int handle_one_reflog(const char *path, const struct object_id *oid,
+ int flag, void *cb_data)
{
struct all_refs_cb *cb = cb_data;
cb->warned_bad_reflog = 0;
void add_reflogs_to_pending(struct rev_info *revs, unsigned flags)
{
struct all_refs_cb cb;
- struct each_ref_fn_sha1_adapter wrapped_handle_one_reflog =
- {handle_one_reflog, &cb};
cb.all_revs = revs;
cb.all_flags = flags;
- for_each_reflog(each_ref_fn_adapter, &wrapped_handle_one_reflog);
+ for_each_reflog(handle_one_reflog, &cb);
}
static void add_cache_tree(struct cache_tree *it, struct rev_info *revs,
} else if (!strcmp(arg, "--full-history")) {
revs->simplify_history = 0;
} else if (!strcmp(arg, "--relative-date")) {
- revs->date_mode = DATE_RELATIVE;
+ revs->date_mode.type = DATE_RELATIVE;
revs->date_mode_explicit = 1;
} else if ((argcount = parse_long_opt("date", argv, &optarg))) {
- revs->date_mode = parse_date_format(optarg);
+ parse_date_format(optarg, &revs->date_mode);
revs->date_mode_explicit = 1;
return argcount;
} else if (!strcmp(arg, "--log-size")) {
clear_ref_exclusion(&revs->ref_excludes);
} else if ((argcount = parse_long_opt("glob", argv, &optarg))) {
struct all_refs_cb cb;
- struct each_ref_fn_sha1_adapter wrapped_handle_one_ref =
- {handle_one_ref, &cb};
-
init_all_refs_cb(&cb, revs, *flags);
- for_each_glob_ref(each_ref_fn_adapter, optarg, &wrapped_handle_one_ref);
+ for_each_glob_ref(handle_one_ref, optarg, &cb);
clear_ref_exclusion(&revs->ref_excludes);
return argcount;
} else if ((argcount = parse_long_opt("exclude", argv, &optarg))) {
return argcount;
} else if (starts_with(arg, "--branches=")) {
struct all_refs_cb cb;
- struct each_ref_fn_sha1_adapter wrapped_handle_one_ref =
- {handle_one_ref, &cb};
-
init_all_refs_cb(&cb, revs, *flags);
- for_each_glob_ref_in(each_ref_fn_adapter, arg + 11, "refs/heads/",
- &wrapped_handle_one_ref);
+ for_each_glob_ref_in(handle_one_ref, arg + 11, "refs/heads/", &cb);
clear_ref_exclusion(&revs->ref_excludes);
} else if (starts_with(arg, "--tags=")) {
struct all_refs_cb cb;
- struct each_ref_fn_sha1_adapter wrapped_handle_one_ref =
- {handle_one_ref, &cb};
-
init_all_refs_cb(&cb, revs, *flags);
- for_each_glob_ref_in(each_ref_fn_adapter, arg + 7, "refs/tags/",
- &wrapped_handle_one_ref);
+ for_each_glob_ref_in(handle_one_ref, arg + 7, "refs/tags/", &cb);
clear_ref_exclusion(&revs->ref_excludes);
} else if (starts_with(arg, "--remotes=")) {
struct all_refs_cb cb;
- struct each_ref_fn_sha1_adapter wrapped_handle_one_ref =
- {handle_one_ref, &cb};
-
init_all_refs_cb(&cb, revs, *flags);
- for_each_glob_ref_in(each_ref_fn_adapter, arg + 10, "refs/remotes/",
- &wrapped_handle_one_ref);
+ for_each_glob_ref_in(handle_one_ref, arg + 10, "refs/remotes/", &cb);
clear_ref_exclusion(&revs->ref_excludes);
} else if (!strcmp(arg, "--reflog")) {
add_reflogs_to_pending(revs, *flags);