All of lore.kernel.org
 help / color / mirror / Atom feed
From: shejialuo <shejialuo@gmail.com>
To: git@vger.kernel.org
Cc: Patrick Steinhardt <ps@pks.im>,
	Karthik Nayak <karthik.188@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	Eric Sunshine <sunshine@sunshineco.com>
Subject: [PATCH v6 01/11] fsck: add "fsck_objects_options" to hold objects-related options
Date: Mon, 1 Jul 2024 23:18:00 +0800	[thread overview]
Message-ID: <ZoLIqOB_X01zdTVi@ArchLinux> (raw)
In-Reply-To: <ZoLHtmOKTfxMSxvw@ArchLinux>

The git-fsck(1) focuses on object database consistency check. It relies
on the "fsck_options" to interact with fsck error levels. However,
"fsck_options" aims at checking the object database which contains a lot
of fields only related to object database.

In order to add ref operations, remove the options related to objects in
"fsck_options" to "fsck_objects_options" and let the "fsck_options"
incorporate "fsck_objects_options". Change the macros and influenced
code to adapt into the above design.

Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: shejialuo <shejialuo@gmail.com>
---
 builtin/fsck.c           | 12 +++++-----
 builtin/index-pack.c     |  4 ++--
 builtin/mktag.c          |  2 +-
 builtin/unpack-objects.c |  4 ++--
 fetch-pack.c             | 10 ++++----
 fsck.c                   | 51 +++++++++++++++++++++------------------
 fsck.h                   | 52 ++++++++++++++++++++++++----------------
 object-file.c            |  2 +-
 8 files changed, 77 insertions(+), 60 deletions(-)

diff --git a/builtin/fsck.c b/builtin/fsck.c
index d13a226c2e..13b64f723f 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -42,8 +42,8 @@ static int check_full = 1;
 static int connectivity_only;
 static int check_strict;
 static int keep_cache_objects;
-static struct fsck_options fsck_walk_options = FSCK_OPTIONS_DEFAULT;
-static struct fsck_options fsck_obj_options = FSCK_OPTIONS_DEFAULT;
+static struct fsck_options fsck_walk_options = FSCK_OBJECTS_OPTIONS_DEFAULT;
+static struct fsck_options fsck_obj_options = FSCK_OBJECTS_OPTIONS_DEFAULT;
 static int errors_found;
 static int write_lost_and_found;
 static int verbose;
@@ -214,7 +214,7 @@ static int mark_used(struct object *obj, enum object_type type UNUSED,
 
 static void mark_unreachable_referents(const struct object_id *oid)
 {
-	struct fsck_options options = FSCK_OPTIONS_DEFAULT;
+	struct fsck_options options = FSCK_OBJECTS_OPTIONS_DEFAULT;
 	struct object *obj = lookup_object(the_repository, oid);
 
 	if (!obj || !(obj->flags & HAS_OBJ))
@@ -233,7 +233,7 @@ static void mark_unreachable_referents(const struct object_id *oid)
 			object_as_type(obj, type, 0);
 	}
 
-	options.walk = mark_used;
+	options.objects_options.walk = mark_used;
 	fsck_walk(obj, NULL, &options);
 	if (obj->type == OBJ_TREE)
 		free_tree_buffer((struct tree *)obj);
@@ -936,8 +936,8 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
 
 	argc = parse_options(argc, argv, prefix, fsck_opts, fsck_usage, 0);
 
-	fsck_walk_options.walk = mark_object;
-	fsck_obj_options.walk = mark_used;
+	fsck_walk_options.objects_options.walk = mark_object;
+	fsck_obj_options.objects_options.walk = mark_used;
 	fsck_obj_options.error_func = fsck_error_func;
 	if (check_strict)
 		fsck_obj_options.strict = 1;
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 856428fef9..59eb8c0355 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -127,7 +127,7 @@ static int nr_threads;
 static int from_stdin;
 static int strict;
 static int do_fsck_object;
-static struct fsck_options fsck_options = FSCK_OPTIONS_MISSING_GITMODULES;
+static struct fsck_options fsck_options = FSCK_OBJECTS_OPTIONS_MISSING_GITMODULES;
 static int verbose;
 static const char *progress_title;
 static int show_resolving_progress;
@@ -1746,7 +1746,7 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
 		usage(index_pack_usage);
 
 	disable_replace_refs();
-	fsck_options.walk = mark_link;
+	fsck_options.objects_options.walk = mark_link;
 
 	reset_pack_idx_option(&opts);
 	opts.flags |= WRITE_REV;
diff --git a/builtin/mktag.c b/builtin/mktag.c
index 4767f1a97e..c6fbeb58d4 100644
--- a/builtin/mktag.c
+++ b/builtin/mktag.c
@@ -15,7 +15,7 @@ static char const * const builtin_mktag_usage[] = {
 };
 static int option_strict = 1;
 
-static struct fsck_options fsck_options = FSCK_OPTIONS_STRICT;
+static struct fsck_options fsck_options = FSCK_OBJECTS_OPTIONS_STRICT;
 
 static int mktag_fsck_error_func(struct fsck_options *o UNUSED,
 				 const struct object_id *oid UNUSED,
diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
index f1c85a00ae..53cff0a91c 100644
--- a/builtin/unpack-objects.c
+++ b/builtin/unpack-objects.c
@@ -25,7 +25,7 @@ static unsigned int offset, len;
 static off_t consumed_bytes;
 static off_t max_input_size;
 static git_hash_ctx ctx;
-static struct fsck_options fsck_options = FSCK_OPTIONS_STRICT;
+static struct fsck_options fsck_options = FSCK_OBJECTS_OPTIONS_STRICT;
 static struct progress *progress;
 
 /*
@@ -239,7 +239,7 @@ static int check_object(struct object *obj, enum object_type type,
 		die("Whoops! Cannot find object '%s'", oid_to_hex(&obj->oid));
 	if (fsck_object(obj, obj_buf->buffer, obj_buf->size, &fsck_options))
 		die("fsck error in packed object");
-	fsck_options.walk = check_object;
+	fsck_options.objects_options.walk = check_object;
 	if (fsck_walk(obj, NULL, &fsck_options))
 		die("Error on reachable objects of %s", oid_to_hex(&obj->oid));
 	write_cached_object(obj, obj_buf);
diff --git a/fetch-pack.c b/fetch-pack.c
index 42f48fbc31..adce10fb4c 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -46,7 +46,7 @@ static int server_supports_filtering;
 static int advertise_sid;
 static struct shallow_lock shallow_lock;
 static const char *alternate_shallow_file;
-static struct fsck_options fsck_options = FSCK_OPTIONS_MISSING_GITMODULES;
+static struct fsck_options fsck_options = FSCK_OBJECTS_OPTIONS_MISSING_GITMODULES;
 static struct strbuf fsck_msg_types = STRBUF_INIT;
 static struct string_list uri_protocols = STRING_LIST_INIT_DUP;
 
@@ -1222,7 +1222,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
 	} else
 		alternate_shallow_file = NULL;
 	if (get_pack(args, fd, pack_lockfiles, NULL, sought, nr_sought,
-		     &fsck_options.gitmodules_found))
+		     &fsck_options.objects_options.gitmodules_found))
 		die(_("git fetch-pack: fetch failed."));
 	if (fsck_finish(&fsck_options))
 		die("fsck failed");
@@ -1782,7 +1782,8 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
 
 			if (get_pack(args, fd, pack_lockfiles,
 				     packfile_uris.nr ? &index_pack_args : NULL,
-				     sought, nr_sought, &fsck_options.gitmodules_found))
+				     sought, nr_sought,
+				     &fsck_options.objects_options.gitmodules_found))
 				die(_("git fetch-pack: fetch failed."));
 			do_check_stateless_delimiter(args->stateless_rpc, &reader);
 
@@ -1825,7 +1826,8 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
 
 		packname[the_hash_algo->hexsz] = '\0';
 
-		parse_gitmodules_oids(cmd.out, &fsck_options.gitmodules_found);
+		parse_gitmodules_oids(cmd.out,
+				      &fsck_options.objects_options.gitmodules_found);
 
 		close(cmd.out);
 
diff --git a/fsck.c b/fsck.c
index e193930ae7..e9848f2678 100644
--- a/fsck.c
+++ b/fsck.c
@@ -259,20 +259,20 @@ static int report(struct fsck_options *options,
 
 void fsck_enable_object_names(struct fsck_options *options)
 {
-	if (!options->object_names)
-		options->object_names = kh_init_oid_map();
+	if (!options->objects_options.object_names)
+		options->objects_options.object_names = kh_init_oid_map();
 }
 
 const char *fsck_get_object_name(struct fsck_options *options,
 				 const struct object_id *oid)
 {
 	khiter_t pos;
-	if (!options->object_names)
+	if (!options->objects_options.object_names)
 		return NULL;
-	pos = kh_get_oid_map(options->object_names, *oid);
-	if (pos >= kh_end(options->object_names))
+	pos = kh_get_oid_map(options->objects_options.object_names, *oid);
+	if (pos >= kh_end(options->objects_options.object_names))
 		return NULL;
-	return kh_value(options->object_names, pos);
+	return kh_value(options->objects_options.object_names, pos);
 }
 
 void fsck_put_object_name(struct fsck_options *options,
@@ -284,15 +284,16 @@ void fsck_put_object_name(struct fsck_options *options,
 	khiter_t pos;
 	int hashret;
 
-	if (!options->object_names)
+	if (!options->objects_options.object_names)
 		return;
 
-	pos = kh_put_oid_map(options->object_names, *oid, &hashret);
+	pos = kh_put_oid_map(options->objects_options.object_names,
+			     *oid, &hashret);
 	if (!hashret)
 		return;
 	va_start(ap, fmt);
 	strbuf_vaddf(&buf, fmt, ap);
-	kh_value(options->object_names, pos) = strbuf_detach(&buf, NULL);
+	kh_value(options->objects_options.object_names, pos) = strbuf_detach(&buf, NULL);
 	va_end(ap);
 }
 
@@ -342,14 +343,14 @@ static int fsck_walk_tree(struct tree *tree, void *data, struct fsck_options *op
 			if (name && obj)
 				fsck_put_object_name(options, &entry.oid, "%s%s/",
 						     name, entry.path);
-			result = options->walk(obj, OBJ_TREE, data, options);
+			result = options->objects_options.walk(obj, OBJ_TREE, data, options);
 		}
 		else if (S_ISREG(entry.mode) || S_ISLNK(entry.mode)) {
 			obj = (struct object *)lookup_blob(the_repository, &entry.oid);
 			if (name && obj)
 				fsck_put_object_name(options, &entry.oid, "%s%s",
 						     name, entry.path);
-			result = options->walk(obj, OBJ_BLOB, data, options);
+			result = options->objects_options.walk(obj, OBJ_BLOB, data, options);
 		}
 		else {
 			result = error("in tree %s: entry %s has bad mode %.6o",
@@ -380,7 +381,7 @@ static int fsck_walk_commit(struct commit *commit, void *data, struct fsck_optio
 		fsck_put_object_name(options, get_commit_tree_oid(commit),
 				     "%s:", name);
 
-	result = options->walk((struct object *) repo_get_commit_tree(the_repository, commit),
+	result = options->objects_options.walk((struct object *) repo_get_commit_tree(the_repository, commit),
 			       OBJ_TREE, data, options);
 	if (result < 0)
 		return result;
@@ -423,7 +424,7 @@ static int fsck_walk_commit(struct commit *commit, void *data, struct fsck_optio
 			else
 				fsck_put_object_name(options, oid, "%s^", name);
 		}
-		result = options->walk((struct object *)parents->item, OBJ_COMMIT, data, options);
+		result = options->objects_options.walk((struct object *)parents->item, OBJ_COMMIT, data, options);
 		if (result < 0)
 			return result;
 		if (!res)
@@ -441,7 +442,7 @@ static int fsck_walk_tag(struct tag *tag, void *data, struct fsck_options *optio
 		return -1;
 	if (name)
 		fsck_put_object_name(options, &tag->tagged->oid, "%s", name);
-	return options->walk(tag->tagged, OBJ_ANY, data, options);
+	return options->objects_options.walk(tag->tagged, OBJ_ANY, data, options);
 }
 
 int fsck_walk(struct object *obj, void *data, struct fsck_options *options)
@@ -598,6 +599,7 @@ static int fsck_tree(const struct object_id *tree_oid,
 	unsigned o_mode;
 	const char *o_name;
 	struct name_stack df_dup_candidates = { NULL };
+	struct fsck_objects_options *objects_options = &options->objects_options;
 
 	if (init_tree_desc_gently(&desc, tree_oid, buffer, size,
 				  TREE_DESC_RAW_MODES)) {
@@ -628,7 +630,7 @@ static int fsck_tree(const struct object_id *tree_oid,
 
 		if (is_hfs_dotgitmodules(name) || is_ntfs_dotgitmodules(name)) {
 			if (!S_ISLNK(mode))
-				oidset_insert(&options->gitmodules_found,
+				oidset_insert(&objects_options->gitmodules_found,
 					      entry_oid);
 			else
 				retval += report(options,
@@ -639,7 +641,7 @@ static int fsck_tree(const struct object_id *tree_oid,
 
 		if (is_hfs_dotgitattributes(name) || is_ntfs_dotgitattributes(name)) {
 			if (!S_ISLNK(mode))
-				oidset_insert(&options->gitattributes_found,
+				oidset_insert(&objects_options->gitattributes_found,
 					      entry_oid);
 			else
 				retval += report(options, tree_oid, OBJ_TREE,
@@ -666,7 +668,7 @@ static int fsck_tree(const struct object_id *tree_oid,
 				has_dotgit |= is_ntfs_dotgit(backslash);
 				if (is_ntfs_dotgitmodules(backslash)) {
 					if (!S_ISLNK(mode))
-						oidset_insert(&options->gitmodules_found,
+						oidset_insert(&objects_options->gitmodules_found,
 							      entry_oid);
 					else
 						retval += report(options, tree_oid, OBJ_TREE,
@@ -1107,11 +1109,11 @@ static int fsck_blob(const struct object_id *oid, const char *buf,
 	if (object_on_skiplist(options, oid))
 		return 0;
 
-	if (oidset_contains(&options->gitmodules_found, oid)) {
+	if (oidset_contains(&options->objects_options.gitmodules_found, oid)) {
 		struct config_options config_opts = { 0 };
 		struct fsck_gitmodules_data data;
 
-		oidset_insert(&options->gitmodules_done, oid);
+		oidset_insert(&options->objects_options.gitmodules_done, oid);
 
 		if (!buf) {
 			/*
@@ -1137,10 +1139,10 @@ static int fsck_blob(const struct object_id *oid, const char *buf,
 		ret |= data.ret;
 	}
 
-	if (oidset_contains(&options->gitattributes_found, oid)) {
+	if (oidset_contains(&options->objects_options.gitattributes_found, oid)) {
 		const char *ptr;
 
-		oidset_insert(&options->gitattributes_done, oid);
+		oidset_insert(&options->objects_options.gitattributes_done, oid);
 
 		if (!buf || size > ATTR_MAX_FILE_SIZE) {
 			/*
@@ -1255,12 +1257,15 @@ static int fsck_blobs(struct oidset *blobs_found, struct oidset *blobs_done,
 
 int fsck_finish(struct fsck_options *options)
 {
+	struct fsck_objects_options *objects_options = &options->objects_options;
 	int ret = 0;
 
-	ret |= fsck_blobs(&options->gitmodules_found, &options->gitmodules_done,
+	ret |= fsck_blobs(&objects_options->gitmodules_found,
+			  &objects_options->gitmodules_done,
 			  FSCK_MSG_GITMODULES_MISSING, FSCK_MSG_GITMODULES_BLOB,
 			  options, ".gitmodules");
-	ret |= fsck_blobs(&options->gitattributes_found, &options->gitattributes_done,
+	ret |= fsck_blobs(&objects_options->gitattributes_found,
+			  &objects_options->gitattributes_done,
 			  FSCK_MSG_GITATTRIBUTES_MISSING, FSCK_MSG_GITATTRIBUTES_BLOB,
 			  options, ".gitattributes");
 
diff --git a/fsck.h b/fsck.h
index 6085a384f6..37b6f6676f 100644
--- a/fsck.h
+++ b/fsck.h
@@ -131,12 +131,8 @@ int fsck_error_cb_print_missing_gitmodules(struct fsck_options *o,
 					   enum fsck_msg_id msg_id,
 					   const char *message);
 
-struct fsck_options {
+struct fsck_objects_options {
 	fsck_walk_func walk;
-	fsck_error error_func;
-	unsigned strict:1;
-	enum fsck_msg_type *msg_type;
-	struct oidset skiplist;
 	struct oidset gitmodules_found;
 	struct oidset gitmodules_done;
 	struct oidset gitattributes_found;
@@ -144,29 +140,43 @@ struct fsck_options {
 	kh_oid_map_t *object_names;
 };
 
-#define FSCK_OPTIONS_DEFAULT { \
+struct fsck_options {
+	unsigned strict:1;
+	enum fsck_msg_type *msg_type;
+	struct oidset skiplist;
+	fsck_error error_func;
+	struct fsck_objects_options objects_options;
+};
+
+#define FSCK_OBJECTS_OPTIONS_DEFAULT { \
 	.skiplist = OIDSET_INIT, \
-	.gitmodules_found = OIDSET_INIT, \
-	.gitmodules_done = OIDSET_INIT, \
-	.gitattributes_found = OIDSET_INIT, \
-	.gitattributes_done = OIDSET_INIT, \
-	.error_func = fsck_error_function \
+	.error_func = fsck_error_function, \
+	.objects_options = { \
+		.gitmodules_found = OIDSET_INIT, \
+		.gitmodules_done = OIDSET_INIT, \
+		.gitattributes_found = OIDSET_INIT, \
+		.gitattributes_done = OIDSET_INIT, \
+	} \
 }
-#define FSCK_OPTIONS_STRICT { \
+#define FSCK_OBJECTS_OPTIONS_STRICT { \
 	.strict = 1, \
-	.gitmodules_found = OIDSET_INIT, \
-	.gitmodules_done = OIDSET_INIT, \
-	.gitattributes_found = OIDSET_INIT, \
-	.gitattributes_done = OIDSET_INIT, \
 	.error_func = fsck_error_function, \
+	.objects_options = { \
+		.gitmodules_found = OIDSET_INIT, \
+		.gitmodules_done = OIDSET_INIT, \
+		.gitattributes_found = OIDSET_INIT, \
+		.gitattributes_done = OIDSET_INIT, \
+	} \
 }
-#define FSCK_OPTIONS_MISSING_GITMODULES { \
+#define FSCK_OBJECTS_OPTIONS_MISSING_GITMODULES { \
 	.strict = 1, \
-	.gitmodules_found = OIDSET_INIT, \
-	.gitmodules_done = OIDSET_INIT, \
-	.gitattributes_found = OIDSET_INIT, \
-	.gitattributes_done = OIDSET_INIT, \
 	.error_func = fsck_error_cb_print_missing_gitmodules, \
+	.objects_options = { \
+		.gitmodules_found = OIDSET_INIT, \
+		.gitmodules_done = OIDSET_INIT, \
+		.gitattributes_found = OIDSET_INIT, \
+		.gitattributes_done = OIDSET_INIT, \
+	} \
 }
 
 /* descend in all linked child objects
diff --git a/object-file.c b/object-file.c
index d3cf4b8b2e..4e10dd9804 100644
--- a/object-file.c
+++ b/object-file.c
@@ -2507,7 +2507,7 @@ static int index_mem(struct index_state *istate,
 		}
 	}
 	if (flags & HASH_FORMAT_CHECK) {
-		struct fsck_options opts = FSCK_OPTIONS_DEFAULT;
+		struct fsck_options opts = FSCK_OBJECTS_OPTIONS_DEFAULT;
 
 		opts.strict = 1;
 		opts.error_func = hash_format_check_report;
-- 
2.45.2


  reply	other threads:[~2024-07-01 15:18 UTC|newest]

Thread overview: 282+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-30 12:27 [GSoC][PATCH 0/2] ref consistency check infra setup shejialuo
2024-05-30 12:27 ` [GSoC][PATCH 1/2] refs: setup ref consistency check infrastructure shejialuo
2024-05-31 14:23   ` Junio C Hamano
2024-05-31 15:20     ` shejialuo
2024-06-03  7:22   ` Patrick Steinhardt
2024-06-03  8:56   ` Karthik Nayak
2024-06-03 22:03     ` Eric Sunshine
2024-05-30 12:27 ` [GSoC][PATCH 2/2] refs: add name and content check for file backend shejialuo
2024-05-31 14:23   ` Junio C Hamano
2024-05-31 16:00     ` shejialuo
2024-05-31 18:31     ` Eric Sunshine
2024-06-03  7:22   ` Patrick Steinhardt
2024-06-12  8:53 ` [GSoC][PATCH v2 0/7] ref consistency check infra setup shejialuo
2024-06-12  8:53   ` [GSoC][PATCH v2 1/7] fsck: add refs check interfaces to interface with fsck error levels shejialuo
2024-06-12  8:53   ` [GSoC][PATCH v2 2/7] refs: set up ref consistency check infrastructure shejialuo
2024-06-15 14:50     ` Karthik Nayak
2024-06-12  8:53   ` [GSoC][PATCH v2 3/7] builtin/refs: add verify subcommand shejialuo
2024-06-15 14:57     ` Karthik Nayak
2024-06-12  8:53   ` [GSoC][PATCH v2 4/7] builtin/fsck: add `git-refs verify` child process shejialuo
2024-06-15 15:02     ` Karthik Nayak
2024-06-12  8:53   ` [GSoC][PATCH v2 5/7] files-backend: add unified interface for refs scanning shejialuo
2024-06-15 20:51     ` Karthik Nayak
2024-06-18  9:09       ` shejialuo
2024-06-12  8:53   ` [GSoC][PATCH v2 6/7] fsck: add ref name check for files backend shejialuo
2024-06-12  8:53   ` [GSoC][PATCH v2 7/7] fsck: add ref content " shejialuo
2024-06-13 19:38     ` Junio C Hamano
2024-06-14  5:20       ` shejialuo
2024-06-14 15:23         ` Junio C Hamano
2024-06-14 17:05           ` jialuo she
2024-06-14 18:56             ` Junio C Hamano
2024-06-12 12:10   ` [GSoC][PATCH v2 0/7] ref consistency check infra setup shejialuo
2024-06-18  8:14   ` [GSoC][PATCH v3 " shejialuo
2024-06-18 15:42     ` Junio C Hamano
2024-06-18 15:56       ` jialuo she
2024-06-18  8:15   ` [GSoC][PATCH v3 1/7] fsck: add refs check interfaces to interface with fsck error levels shejialuo
2024-06-18  8:38     ` Karthik Nayak
2024-06-18  8:46       ` shejialuo
2024-06-18 15:25         ` Junio C Hamano
2024-06-18 15:47           ` jialuo she
2024-06-19  2:39           ` shejialuo
2024-06-18  8:17   ` [PATCH v3 2/7] refs: set up ref consistency check infrastructure shejialuo
2024-06-18  8:18   ` [PATCH v3 3/7] builtin/refs: add verify subcommand shejialuo
2024-06-18  8:44     ` Karthik Nayak
2024-06-18  8:48       ` shejialuo
2024-06-18  8:18   ` [PATCH v3 4/7] builtin/fsck: add `git-refs verify` child process shejialuo
2024-06-18  8:18   ` [PATCH v3 5/7] files-backend: add unified interface for refs scanning shejialuo
2024-06-18  8:19   ` [PATCH v3 6/7] fsck: add ref name check for files backend shejialuo
2024-06-18  8:20   ` [PATCH v3 7/7] fsck: add ref content " shejialuo
2024-06-19  7:37   ` [GSoC][PATCH v4 0/7] ref consistency check infra setup shejialuo
2024-06-19  7:41     ` [GSoC][PATCH v4 1/7] fsck: add refs check interfaces to interact with fsck error levels shejialuo
2024-06-20 17:24       ` Junio C Hamano
2024-06-21  2:24         ` shejialuo
2024-06-19  7:41     ` [GSoC][PATCH v4 2/7] refs: set up ref consistency check infrastructure shejialuo
2024-06-19  7:42     ` [GSoC][PATCH v4 3/7] builtin/refs: add verify subcommand shejialuo
2024-06-19  7:42     ` [GSoC][PATCH v4 4/7] builtin/fsck: add `git-refs verify` child process shejialuo
2024-06-19  7:43     ` [GSoC][PATCH v4 5/7] files-backend: add unified interface for refs scanning shejialuo
2024-06-19  7:44     ` [GSoC][PATCH v4 6/7] fsck: add ref name check for files backend shejialuo
2024-06-19  7:44     ` [GSoC][PATCH v4 7/7] fsck: add ref content " shejialuo
2024-06-27 15:08     ` [GSoC][PATCH v5 00/12] ref consistency check infra setup shejialuo
2024-06-27 15:12       ` [GSoC][PATCH v5 01/12] fsck: rename "fsck_options" to "fsck_objects_options" shejialuo
2024-06-27 21:32         ` Junio C Hamano
2024-06-28  3:43           ` shejialuo
2024-06-27 15:13       ` [GSoC][PATCH v5 02/12] fsck: use "fsck_configs" to set up configs shejialuo
2024-06-27 21:43         ` Junio C Hamano
2024-06-28  4:22           ` shejialuo
2024-06-27 15:13       ` [GSoC][PATCH v5 03/12] fsck: abstract common options for reusing shejialuo
2024-06-27 15:13       ` [GSoC][PATCH v5 04/12] fsck: add "fsck_refs_options" struct shejialuo
2024-06-27 15:14       ` [GSoC][PATCH v5 05/12] fsck: add a unified interface for reporting fsck messages shejialuo
2024-06-27 15:14       ` [GSoC][PATCH v5 06/12] fsck: add "fsck_refs_options" initialization macros shejialuo
2024-06-27 15:15       ` [GSoC][PATCH v5 07/12] refs: set up ref consistency check infrastructure shejialuo
2024-06-27 15:15       ` [GSoC][PATCH v5 08/12] builtin/refs: add verify subcommand shejialuo
2024-06-27 15:16       ` [GSoC][PATCH v5 09/12] builtin/fsck: add `git-refs verify` child process shejialuo
2024-06-27 15:16       ` [GSoC][PATCH v5 10/12] files-backend: add unified interface for refs scanning shejialuo
2024-06-27 15:17       ` [GSoC][PATCH v5 11/12] fsck: add ref name check for files backend shejialuo
2024-06-27 15:18       ` [GSoC][PATCH v5 12/12] fsck: add ref content " shejialuo
2024-07-01 15:13       ` [GSoC][PATCH v6 00/11] ref consistency check infra setup shejialuo
2024-07-01 15:18         ` shejialuo [this message]
2024-07-01 15:19         ` [GSoC][PATCH v6 02/11] fsck: rename "skiplist" to "oid_skiplist" shejialuo
2024-07-01 15:19         ` [GSoC][PATCH v6 03/11] fsck: add "fsck_refs_options" into "fsck_options" shejialuo
2024-07-01 15:19         ` [GSoC][PATCH v6 04/11] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-01 15:19         ` [GSoC][PATCH v6 05/11] fsck: add "fsck_refs_options" initialization macros shejialuo
2024-07-01 15:20         ` [GSoC][PATCH v6 06/11] refs: set up ref consistency check infrastructure shejialuo
2024-07-01 15:20         ` [GSoC][PATCH v6 07/11] builtin/refs: add verify subcommand shejialuo
2024-07-01 15:21         ` [GSoC][PATCH v6 08/11] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-01 15:21         ` [GSoC][PATCH v6 09/11] files-backend: add unified interface for refs scanning shejialuo
2024-07-01 15:21         ` [GSoC][PATCH v6 10/11] fsck: add ref name check for files backend shejialuo
2024-07-01 15:22         ` [GSoC][PATCH v6 11/11] fsck: add ref content " shejialuo
2024-07-02 10:33         ` [GSoC][PATCH v6 00/11] ref consistency check infra setup Karthik Nayak
2024-07-02 12:15           ` shejialuo
2024-07-02 15:39           ` Junio C Hamano
2024-07-03 13:53         ` [GSoC][PATCH v7 0/9] " shejialuo
2024-07-03 13:56           ` [GSoC][PATCH v7 1/9] fsck: rename "skiplist" to "oid_skiplist" shejialuo
2024-07-05 22:07             ` Justin Tobler
2024-07-08 12:06               ` shejialuo
2024-07-03 13:56           ` [GSoC][PATCH v7 2/9] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-05 22:43             ` Justin Tobler
2024-07-08 12:12               ` shejialuo
2024-07-03 13:57           ` [GSoC][PATCH v7 3/9] fsck: add refs-related options and error report function shejialuo
2024-07-03 13:57           ` [GSoC][PATCH v7 4/9] refs: set up ref consistency check infrastructure shejialuo
2024-07-03 13:58           ` [GSoC][PATCH v7 5/9] builtin/refs: add verify subcommand shejialuo
2024-07-03 13:58           ` [GSoC][PATCH v7 6/9] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-03 13:58           ` [GSoC][PATCH v7 7/9] files-backend: add unified interface for refs scanning shejialuo
2024-07-03 13:59           ` [GSoC][PATCH v7 8/9] fsck: add ref name check for files backend shejialuo
2024-07-03 13:59           ` [GSoC][PATCH v7 9/9] fsck: add ref content " shejialuo
2024-07-08 13:32           ` [GSoC][PATCH v8 0/9] ref consistency check infra setup shejialuo
2024-07-08 13:34           ` [GSoC][PATCH v8 1/9] fsck: rename "skiplist" to "oid_skiplist" shejialuo
2024-07-08 13:35           ` [GSoC][PATCH v8 2/9] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-08 14:36             ` Karthik Nayak
2024-07-08 15:01               ` shejialuo
2024-07-08 17:11                 ` Karthik Nayak
2024-07-08 13:35           ` [GSoC][PATCH v8 3/9] fsck: add refs-related options and error report function shejialuo
2024-07-08 14:49             ` Karthik Nayak
2024-07-08 15:32               ` shejialuo
2024-07-08 13:35           ` [GSoC][PATCH v8 4/9] refs: set up ref consistency check infrastructure shejialuo
2024-07-08 13:36           ` [GSoC][PATCH v8 5/9] builtin/refs: add verify subcommand shejialuo
2024-07-08 13:36           ` [GSoC][PATCH v8 6/9] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-08 13:36           ` [GSoC][PATCH v8 7/9] files-backend: add unified interface for refs scanning shejialuo
2024-07-08 13:36           ` [GSoC][PATCH v8 8/9] fsck: add ref name check for files backend shejialuo
2024-07-08 13:37           ` [GSoC][PATCH v8 9/9] fsck: add ref content " shejialuo
2024-07-09 12:32           ` [GSoC][PATCH v9 0/9] ref consistency check infra setup shejialuo
2024-07-09 12:34             ` [GSoC][PATCH v9 1/9] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-07-09 12:35             ` [GSoC][PATCH v9 2/9] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-09 20:24               ` Justin Tobler
2024-07-10 12:09                 ` shejialuo
2024-07-09 12:35             ` [GSoC][PATCH v9 3/9] fsck: add refs-related options and error report function shejialuo
2024-07-09 21:29               ` Justin Tobler
2024-07-09 21:40                 ` Eric Sunshine
2024-07-10 12:13                   ` shejialuo
2024-07-10 12:28                 ` shejialuo
2024-07-09 12:35             ` [GSoC][PATCH v9 4/9] refs: set up ref consistency check infrastructure shejialuo
2024-07-09 22:11               ` Justin Tobler
2024-07-10 12:29                 ` shejialuo
2024-07-09 12:35             ` [GSoC][PATCH v9 5/9] builtin/refs: add verify subcommand shejialuo
2024-07-09 22:30               ` Justin Tobler
2024-07-10 12:32                 ` shejialuo
2024-07-09 12:36             ` [GSoC][PATCH v9 6/9] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-09 12:36             ` [GSoC][PATCH v9 7/9] files-backend: add unified interface for refs scanning shejialuo
2024-07-09 12:36             ` [GSoC][PATCH v9 8/9] fsck: add ref name check for files backend shejialuo
2024-07-09 12:36             ` [GSoC][PATCH v9 9/9] fsck: add ref content " shejialuo
2024-07-10 14:43             ` [GSoC][PATCH v10 00/10] ref consistency check infra setup shejialuo
2024-07-10 14:46               ` [GSoC][PATCH v10 01/10] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-07-10 14:46               ` [GSoC][PATCH v10 02/10] fsck: rename objects-related fsck error functions shejialuo
2024-07-10 14:47               ` [GSoC][PATCH v10 03/10] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-10 21:04                 ` Junio C Hamano
2024-07-11 11:59                   ` shejialuo
2024-07-10 14:47               ` [GSoC][PATCH v10 04/10] fsck: add refs-related error report function shejialuo
2024-07-10 14:47               ` [GSoC][PATCH v10 05/10] refs: set up ref consistency check infrastructure shejialuo
2024-07-10 14:47               ` [GSoC][PATCH v10 06/10] builtin/refs: add verify subcommand and verbose_refs for "fsck_options" shejialuo
2024-07-10 21:31                 ` Junio C Hamano
2024-07-11 12:39                   ` shejialuo
2024-07-10 14:48               ` [GSoC][PATCH v10 07/10] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-10 14:48               ` [GSoC][PATCH v10 08/10] files-backend: add unified interface for refs scanning shejialuo
2024-07-10 14:48               ` [GSoC][PATCH v10 09/10] fsck: add ref name check for files backend shejialuo
2024-07-10 14:48               ` [GSoC][PATCH v10 10/10] fsck: add ref content " shejialuo
2024-07-14 12:28               ` [GSoC][PATCH v11 00/10] ref consistency check infra setup shejialuo
2024-07-14 12:30                 ` [GSoC][PATCH v11 01/10] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-07-14 12:31                 ` [GSoC][PATCH v11 02/10] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-18 13:26                   ` Karthik Nayak
2024-07-20  7:24                     ` shejialuo
2024-07-14 12:31                 ` [GSoC][PATCH v11 03/10] fsck: rename objects-related fsck error functions shejialuo
2024-07-14 12:31                 ` [GSoC][PATCH v11 04/10] fsck: add refs-related error report function shejialuo
2024-07-14 12:31                 ` [GSoC][PATCH v11 05/10] refs: set up ref consistency check infrastructure shejialuo
2024-07-14 12:31                 ` [GSoC][PATCH v11 06/10] git refs: add verify subcommand shejialuo
2024-07-14 12:32                 ` [GSoC][PATCH v11 07/10] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-14 12:32                 ` [GSoC][PATCH v11 08/10] files-backend: add unified interface for refs scanning shejialuo
2024-07-14 12:32                 ` [GSoC][PATCH v11 09/10] fsck: add ref name check for files backend shejialuo
2024-07-14 12:32                 ` [GSoC][PATCH v11 10/10] fsck: add ref content " shejialuo
2024-07-18 14:31                   ` Karthik Nayak
2024-07-18 16:03                     ` Junio C Hamano
2024-07-19  8:33                       ` Karthik Nayak
2024-07-20  7:16                     ` shejialuo
2024-07-20  8:43                       ` shejialuo
2024-07-20  9:25                 ` [GSoC][PATCH v12 00/10] ref consistency check infra setup shejialuo
2024-07-20  9:27                   ` [GSoC][PATCH v12 01/10] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-07-20  9:27                   ` [GSoC][PATCH v12 02/10] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-23  8:35                     ` Karthik Nayak
2024-07-20  9:27                   ` [GSoC][PATCH v12 03/10] fsck: rename objects-related fsck error functions shejialuo
2024-07-20  9:28                   ` [GSoC][PATCH v12 04/10] fsck: add refs-related error report function shejialuo
2024-07-20  9:28                   ` [GSoC][PATCH v12 05/10] refs: set up ref consistency check infrastructure shejialuo
2024-07-20  9:28                   ` [GSoC][PATCH v12 06/10] git refs: add verify subcommand shejialuo
2024-07-20  9:28                   ` [GSoC][PATCH v12 07/10] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-20  9:28                   ` [GSoC][PATCH v12 08/10] files-backend: add unified interface for refs scanning shejialuo
2024-07-20  9:29                   ` [GSoC][PATCH v12 09/10] fsck: add ref name check for files backend shejialuo
2024-07-20  9:29                   ` [GSoC][PATCH v12 10/10] fsck: add ref content " shejialuo
2024-07-29 13:22                   ` [GSoC][PATCH v13 00/10] ref consistency check infra setup shejialuo
2024-07-29 13:26                     ` [GSoC][PATCH v13 01/10] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-07-29 13:26                     ` [GSoC][PATCH v13 02/10] fsck: add a unified interface for reporting fsck messages shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 14:56                         ` shejialuo
2024-07-29 13:26                     ` [GSoC][PATCH v13 03/10] fsck: rename objects-related fsck error functions shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 14:59                         ` shejialuo
2024-07-29 13:26                     ` [GSoC][PATCH v13 04/10] fsck: add refs-related error report function shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 15:09                         ` shejialuo
2024-07-29 13:27                     ` [GSoC][PATCH v13 05/10] refs: set up ref consistency check infrastructure shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 15:10                         ` shejialuo
2024-07-29 13:27                     ` [GSoC][PATCH v13 06/10] git refs: add verify subcommand shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 15:59                         ` shejialuo
2024-07-30 17:56                           ` Eric Sunshine
2024-07-29 13:27                     ` [GSoC][PATCH v13 07/10] builtin/fsck: add `git-refs verify` child process shejialuo
2024-07-29 13:27                     ` [GSoC][PATCH v13 08/10] files-backend: add unified interface for refs scanning shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 16:10                         ` shejialuo
2024-07-29 13:27                     ` [GSoC][PATCH v13 09/10] fsck: add ref name check for files backend shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 16:14                         ` shejialuo
2024-07-29 13:27                     ` [GSoC][PATCH v13 10/10] fsck: add ref content " shejialuo
2024-07-30  8:31                       ` Patrick Steinhardt
2024-07-30 16:25                         ` shejialuo
2024-07-30 22:06                       ` Junio C Hamano
2024-07-31 16:19                         ` shejialuo
2024-07-30  8:31                     ` [GSoC][PATCH v13 00/10] ref consistency check infra setup Patrick Steinhardt
2024-07-30 16:29                       ` shejialuo
2024-08-01 15:11                     ` [GSoC][PATCH v14 00/11] " shejialuo
2024-08-01 15:13                       ` [GSoC][PATCH v14 01/11] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-08-01 15:13                       ` [GSoC][PATCH v14 02/11] fsck: make "fsck_error" callback generic shejialuo
2024-08-01 15:13                       ` [GSoC][PATCH v14 03/11] fsck: add a unified interface for reporting fsck messages shejialuo
2024-08-05 12:58                         ` Patrick Steinhardt
2024-08-05 15:10                           ` shejialuo
2024-08-01 15:14                       ` [GSoC][PATCH v14 04/11] fsck: add refs report function shejialuo
2024-08-05 12:58                         ` Patrick Steinhardt
2024-08-01 15:14                       ` [GSoC][PATCH v14 05/11] fsck: add refs-related error callback shejialuo
2024-08-05 12:58                         ` Patrick Steinhardt
2024-08-01 15:14                       ` [GSoC][PATCH v14 06/11] fsck: rename objects-related fsck error functions shejialuo
2024-08-05 12:58                         ` Patrick Steinhardt
2024-08-01 15:14                       ` [GSoC][PATCH v14 07/11] refs: set up ref consistency check infrastructure shejialuo
2024-08-01 15:14                       ` [GSoC][PATCH v14 08/11] builtin/refs: add verify subcommand shejialuo
2024-08-01 15:15                       ` [GSoC][PATCH v14 09/11] builtin/fsck: add `git-refs verify` child process shejialuo
2024-08-05 12:58                         ` Patrick Steinhardt
2024-08-05 15:18                           ` shejialuo
2024-08-05 18:11                             ` Junio C Hamano
2024-08-05 18:36                               ` shejialuo
2024-08-05 19:38                                 ` Junio C Hamano
2024-08-06  0:42                                   ` shejialuo
2024-08-06  6:04                                     ` Patrick Steinhardt
2024-08-06 15:54                                       ` Junio C Hamano
2024-08-07  4:49                                         ` Patrick Steinhardt
2024-08-06  5:29                                   ` Patrick Steinhardt
2024-08-01 15:15                       ` [GSoC][PATCH v14 10/11] files-backend: add unified interface for refs scanning shejialuo
2024-08-05 12:58                         ` Patrick Steinhardt
2024-08-01 15:15                       ` [GSoC][PATCH v14 11/11] fsck: add ref name check for files backend shejialuo
2024-08-05 12:58                         ` Patrick Steinhardt
2024-08-05 12:58                       ` [GSoC][PATCH v14 00/11] ref consistency check infra setup Patrick Steinhardt
2024-08-05 16:43                       ` [GSoC][PATCH v15 0/9] " shejialuo
2024-08-05 16:45                         ` [GSoC][PATCH v15 1/9] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-08-05 16:45                         ` [GSoC][PATCH v15 2/9] fsck: rename objects-related fsck error functions shejialuo
2024-08-05 16:45                         ` [GSoC][PATCH v15 3/9] fsck: make "fsck_error" callback generic shejialuo
2024-08-07  8:03                           ` Karthik Nayak
2024-08-05 16:45                         ` [GSoC][PATCH v15 4/9] fsck: add a unified interface for reporting fsck messages shejialuo
2024-08-07  8:05                           ` Karthik Nayak
2024-08-05 16:45                         ` [GSoC][PATCH v15 5/9] fsck: add refs report function shejialuo
2024-08-06  7:32                           ` Patrick Steinhardt
2024-08-05 16:46                         ` [GSoC][PATCH v15 6/9] refs: set up ref consistency check infrastructure shejialuo
2024-08-05 16:46                         ` [GSoC][PATCH v15 7/9] builtin/refs: add verify subcommand shejialuo
2024-08-06  7:32                           ` Patrick Steinhardt
2024-08-06 16:15                             ` Junio C Hamano
2024-08-07  5:55                               ` Patrick Steinhardt
2024-08-07 12:50                                 ` shejialuo
2024-08-08 10:22                                   ` Karthik Nayak
2024-08-07 15:55                                 ` Junio C Hamano
2024-08-05 16:46                         ` [GSoC][PATCH v15 8/9] files-backend: add unified interface for refs scanning shejialuo
2024-08-06  7:33                           ` Patrick Steinhardt
2024-08-05 16:46                         ` [GSoC][PATCH v15 9/9] fsck: add ref name check for files backend shejialuo
2024-08-06  7:32                         ` [GSoC][PATCH v15 0/9] ref consistency check infra setup Patrick Steinhardt
2024-08-07  9:29                         ` Karthik Nayak
2024-08-08 11:21                         ` [GSoC][PATCH v16 " shejialuo
2024-08-08 11:24                           ` [GSoC][PATCH v16 1/9] fsck: rename "skiplist" to "skip_oids" shejialuo
2024-08-08 11:24                           ` [GSoC][PATCH v16 2/9] fsck: rename objects-related fsck error functions shejialuo
2024-08-08 11:26                           ` [GSoC][PATCH v16 3/9] fsck: make "fsck_error" callback generic shejialuo
2024-08-08 11:26                           ` [GSoC][PATCH v16 4/9] fsck: add a unified interface for reporting fsck messages shejialuo
2024-08-08 11:27                           ` [GSoC][PATCH v16 5/9] fsck: add refs report function shejialuo
2024-08-08 11:27                           ` [GSoC][PATCH v16 6/9] refs: set up ref consistency check infrastructure shejialuo
2024-08-08 11:27                           ` [GSoC][PATCH v16 7/9] builtin/refs: add verify subcommand shejialuo
2024-10-04 19:14                             ` [PATCH 1/2] refs.c: remove redundant translation markers Teng Long
2024-10-06 10:01                               ` shejialuo
2024-08-08 11:31                           ` [GSoC][PATCH v16 8/9] files-backend: add unified interface for refs scanning shejialuo
2024-08-08 11:31                           ` [GSoC][PATCH v16 9/9] fsck: add ref name check for files backend shejialuo
2024-08-08 11:54                           ` [GSoC][PATCH v16 0/9] ref consistency check infra setup Patrick Steinhardt
2024-08-08 16:37                             ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZoLIqOB_X01zdTVi@ArchLinux \
    --to=shejialuo@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=karthik.188@gmail.com \
    --cc=ps@pks.im \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.