object_as_type(obj, type, 0);
}
- fsck_options_init(&options, FSCK_OPTIONS_DEFAULT);
+ fsck_options_init(&options, the_repository, FSCK_OPTIONS_DEFAULT);
options.walk = mark_used;
fsck_walk(obj, NULL, &options);
if (obj->type == OBJ_TREE)
int cmd_fsck(int argc,
const char **argv,
const char *prefix,
- struct repository *repo UNUSED)
+ struct repository *repo)
{
struct odb_source *source;
struct snapshot snap = {
argc = parse_options(argc, argv, prefix, fsck_opts, fsck_usage, 0);
- fsck_options_init(&fsck_walk_options, FSCK_OPTIONS_DEFAULT);
+ fsck_options_init(&fsck_walk_options, repo, FSCK_OPTIONS_DEFAULT);
fsck_walk_options.walk = mark_object;
- fsck_options_init(&fsck_obj_options, FSCK_OPTIONS_DEFAULT);
+ fsck_options_init(&fsck_obj_options, repo, FSCK_OPTIONS_DEFAULT);
fsck_obj_options.walk = mark_used;
fsck_obj_options.error_func = fsck_objects_error_func;
if (check_strict)
disable_replace_refs();
- fsck_options_init(&fsck_options, FSCK_OPTIONS_MISSING_GITMODULES);
+ fsck_options_init(&fsck_options, the_repository, FSCK_OPTIONS_MISSING_GITMODULES);
fsck_options.walk = mark_link;
reset_pack_idx_option(&opts);
int cmd_mktag(int argc,
const char **argv,
const char *prefix,
- struct repository *repo UNUSED)
+ struct repository *repo)
{
static struct option builtin_mktag_options[] = {
OPT_BOOL(0, "strict", &option_strict,
if (strbuf_read(&buf, 0, 0) < 0)
die_errno(_("could not read from stdin"));
- fsck_options_init(&fsck_options, FSCK_OPTIONS_STRICT);
+ fsck_options_init(&fsck_options, repo, FSCK_OPTIONS_STRICT);
fsck_options.error_func = mktag_fsck_error_func;
fsck_set_msg_type_from_ids(&fsck_options, FSCK_MSG_EXTRA_HEADER_ENTRY,
FSCK_WARN);
}
static int cmd_refs_verify(int argc, const char **argv, const char *prefix,
- struct repository *repo UNUSED)
+ struct repository *repo)
{
struct fsck_options fsck_refs_options;
struct worktree **worktrees;
};
int ret = 0;
- fsck_options_init(&fsck_refs_options, FSCK_OPTIONS_REFS);
+ fsck_options_init(&fsck_refs_options, repo, FSCK_OPTIONS_REFS);
argc = parse_options(argc, argv, prefix, options, verify_usage, 0);
if (argc)
int cmd_unpack_objects(int argc,
const char **argv,
const char *prefix UNUSED,
- struct repository *repo UNUSED)
+ struct repository *repo)
{
int i;
struct object_id oid;
show_usage_if_asked(argc, argv, unpack_usage);
- fsck_options_init(&fsck_options, FSCK_OPTIONS_STRICT);
+ fsck_options_init(&fsck_options, repo, FSCK_OPTIONS_STRICT);
for (i = 1 ; i < argc; i++) {
const char *arg = argv[i];
} else
alternate_shallow_file = NULL;
- fsck_options_init(&fsck_options, FSCK_OPTIONS_MISSING_GITMODULES);
+ fsck_options_init(&fsck_options, the_repository, FSCK_OPTIONS_MISSING_GITMODULES);
if (get_pack(args, fd, pack_lockfiles, NULL, sought, nr_sought,
&fsck_options.gitmodules_found))
die(_("git fetch-pack: fetch failed."));
struct strvec index_pack_args = STRVEC_INIT;
const char *promisor_remote_config;
- fsck_options_init(&fsck_options, FSCK_OPTIONS_MISSING_GITMODULES);
+ fsck_options_init(&fsck_options, the_repository, FSCK_OPTIONS_MISSING_GITMODULES);
if (server_feature_v2("promisor-remote", &promisor_remote_config))
promisor_remote_reply(promisor_remote_config, NULL);
}
void fsck_options_init(struct fsck_options *options,
+ struct repository *repo,
enum fsck_options_type type)
{
static const struct fsck_options defaults[] = {
default:
BUG("unknown fsck options type %d", type);
}
+
+ options->repo = repo;
}
void fsck_options_clear(struct fsck_options *options)
const char *path;
};
+struct repository;
+
struct fsck_options {
+ struct repository *repo;
fsck_walk_func walk;
fsck_error error_func;
unsigned strict;
};
void fsck_options_init(struct fsck_options *options,
+ struct repository *repo,
enum fsck_options_type type);
/*
if (flags & INDEX_FORMAT_CHECK) {
struct fsck_options opts;
- fsck_options_init(&opts, FSCK_OPTIONS_DEFAULT);
+ fsck_options_init(&opts, the_repository, FSCK_OPTIONS_DEFAULT);
opts.strict = 1;
opts.error_func = hash_format_check_report;
if (fsck_buffer(null_oid(istate->repo->hash_algo), type, buf, size, &opts))