git.vger.kernel.org archive mirror
 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>,
	Justin Tobler <jltobler@gmail.com>
Subject: [GSoC][PATCH v15 0/9] ref consistency check infra setup
Date: Tue, 6 Aug 2024 00:43:22 +0800	[thread overview]
Message-ID: <ZrEBKjzbyxtMdCCx@ArchLinux> (raw)
In-Reply-To: <ZqulmWVBaeyP4blf@ArchLinux>

Hi All:

This version handles the following problems:

1. Patrick advices that I should not use `va_copy` in the changed
`report` function. Actually this is a mistake, this version avoids
redundant `ap` copy.
2. Patrick advices I should rebase [v14 05/11] into [v14 04/11]. I
follow this advice in this version.
3. Patrick advices that we should put [v14 06/11] before we introduce
ref-related operations. This version reorders the commit sequence. It's
a minor change.
4. Patrick suggests at current we should not add `git refs verify`
command into "git-fsck(1)". This is because we should disable this new
check by default for the users. Many users use "git-fsck(1)" in their daily
workflow. We should not be aggressive. However, if we provide this
mechanism in this series, we will again make more complexity. So this
version drop patch [v14 09/11]. Also because of dropping, change the
test file to use "git refs verify" command instead of "git fsck"
command.
5. Patrick suggests that we should use `ends_with` instead of
`strip_suffix`, fix.

There is another important problem this patch solves:

At v13, Junio has suggested that the `files_fsck_refs_fn` should be
adapted to Patrick's change. Actually, I made a bad design before. I
should always pass the `ref_store` structure. So I change it to

  -typedef int (*files_fsck_refs_fn)(struct fsck_options *o,
  -				  const char *gitdir,
  +typedef int (*files_fsck_refs_fn)(struct ref_store *ref_store,
  +				  struct fsck_options *o,
            const char *refs_check_dir,
            struct dir_iterator *iter);

`gitdir` could be got by using `ref_store` parameter. By using
`ref_store` parameter, we provide extensibility here. If something else
change, we merely need to change "files_fsck_refs_fn" prototype.

Because I drop one patch and rebase one patch. I provide the `interdiff`
for reviewers to make the life easier.

Due to the deadline of the GSoC, I will speed up the review feedback
process.

Thanks,
Jialuo

shejialuo (9):
  fsck: rename "skiplist" to "skip_oids"
  fsck: rename objects-related fsck error functions
  fsck: make "fsck_error" callback generic
  fsck: add a unified interface for reporting fsck messages
  fsck: add refs report function
  refs: set up ref consistency check infrastructure
  builtin/refs: add verify subcommand
  files-backend: add unified interface for refs scanning
  fsck: add ref name check for files backend

 Documentation/fsck-msgids.txt |   6 ++
 Documentation/git-refs.txt    |  13 ++++
 builtin/fsck.c                |  17 +++--
 builtin/mktag.c               |   3 +-
 builtin/refs.c                |  34 +++++++++
 fsck.c                        | 127 +++++++++++++++++++++++++++-------
 fsck.h                        |  76 +++++++++++++++-----
 object-file.c                 |   9 ++-
 refs.c                        |   5 ++
 refs.h                        |   8 +++
 refs/debug.c                  |  11 +++
 refs/files-backend.c          | 116 ++++++++++++++++++++++++++++++-
 refs/packed-backend.c         |   8 +++
 refs/refs-internal.h          |   6 ++
 refs/reftable-backend.c       |   8 +++
 t/t0602-reffiles-fsck.sh      |  92 ++++++++++++++++++++++++
 16 files changed, 480 insertions(+), 59 deletions(-)
 create mode 100755 t/t0602-reffiles-fsck.sh

Interdiff against v14:
diff --git a/builtin/fsck.c b/builtin/fsck.c
index b6ac878270..766bbd014d 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -899,21 +899,6 @@ static int check_pack_rev_indexes(struct repository *r, int show_progress)
 	return res;
 }
 
-static void fsck_refs(void)
-{
-	struct child_process refs_verify = CHILD_PROCESS_INIT;
-	child_process_init(&refs_verify);
-	refs_verify.git_cmd = 1;
-	strvec_pushl(&refs_verify.args, "refs", "verify", NULL);
-	if (verbose)
-		strvec_push(&refs_verify.args, "--verbose");
-	if (check_strict)
-		strvec_push(&refs_verify.args, "--strict");
-
-	if (run_command(&refs_verify))
-		errors_found |= ERROR_REFS;
-}
-
 static char const * const fsck_usage[] = {
 	N_("git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]\n"
 	   "         [--[no-]full] [--strict] [--verbose] [--lost-found]\n"
@@ -1083,8 +1068,6 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
 
 	check_connectivity();
 
-	fsck_refs();
-
 	if (the_repository->settings.core_commit_graph) {
 		struct child_process commit_graph_verify = CHILD_PROCESS_INIT;
 
diff --git a/fsck.c b/fsck.c
index d5e7c88eab..7eb5cdefdd 100644
--- a/fsck.c
+++ b/fsck.c
@@ -235,7 +235,6 @@ static int fsck_vreport(struct fsck_options *options,
 			void *fsck_report,
 			enum fsck_msg_id msg_id, const char *fmt, va_list ap)
 {
-	va_list ap_copy;
 	struct strbuf sb = STRBUF_INIT;
 	enum fsck_msg_type msg_type = fsck_msg_type(msg_id, options);
 	int result;
@@ -251,12 +250,10 @@ static int fsck_vreport(struct fsck_options *options,
 	prepare_msg_ids();
 	strbuf_addf(&sb, "%s: ", msg_id_info[msg_id].camelcased);
 
-	va_copy(ap_copy, ap);
-	strbuf_vaddf(&sb, fmt, ap_copy);
+	strbuf_vaddf(&sb, fmt, ap);
 	result = options->error_func(options, fsck_report,
 				     msg_type, msg_id, sb.buf);
 	strbuf_release(&sb);
-	va_end(ap);
 
 	return result;
 }
@@ -1391,5 +1388,6 @@ int fsck_objects_error_cb_print_missing_gitmodules(struct fsck_options *o,
 		puts(oid_to_hex(report->oid));
 		return 0;
 	}
-	return fsck_objects_error_function(o, fsck_report, msg_type,msg_id, message);
+	return fsck_objects_error_function(o, fsck_report,
+					   msg_type, msg_id, message);
 }
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 1186b6cbb1..6e6b47251d 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -3414,26 +3414,25 @@ static int files_ref_store_remove_on_disk(struct ref_store *ref_store,
  * the whole directory. This function is used as the callback for each
  * regular file or symlink in the directory.
  */
-typedef int (*files_fsck_refs_fn)(struct fsck_options *o,
-				  const char *gitdir,
+typedef int (*files_fsck_refs_fn)(struct ref_store *ref_store,
+				  struct fsck_options *o,
 				  const char *refs_check_dir,
 				  struct dir_iterator *iter);
 
-static int files_fsck_refs_name(struct fsck_options *o,
-				const char *gitdir UNUSED,
+static int files_fsck_refs_name(struct ref_store *ref_store UNUSED,
+				struct fsck_options *o,
 				const char *refs_check_dir,
 				struct dir_iterator *iter)
 {
 	struct strbuf sb = STRBUF_INIT;
-	size_t len = 0;
 	int ret = 0;
 
 	/*
 	 * Ignore the files ending with ".lock" as they may be lock files
 	 * However, do not allow bare ".lock" files.
 	 */
-	if (strip_suffix(iter->basename, ".lock", &len) && (len != 0))
-		goto clean;
+	if (iter->basename[0] != '.' && ends_with(iter->basename, ".lock"))
+		goto cleanup;
 
 	if (check_refname_format(iter->basename, REFNAME_ALLOW_ONELEVEL)) {
 		struct fsck_ref_report report = { .path = NULL };
@@ -3445,7 +3444,7 @@ static int files_fsck_refs_name(struct fsck_options *o,
 				      "invalid refname format");
 	}
 
-clean:
+cleanup:
 	strbuf_release(&sb);
 	return ret;
 }
@@ -3455,13 +3454,12 @@ static int files_fsck_refs_dir(struct ref_store *ref_store,
 			       const char *refs_check_dir,
 			       files_fsck_refs_fn *fsck_refs_fn)
 {
-	const char *gitdir = ref_store->gitdir;
 	struct strbuf sb = STRBUF_INIT;
 	struct dir_iterator *iter;
 	int iter_status;
 	int ret = 0;
 
-	strbuf_addf(&sb, "%s/%s", gitdir, refs_check_dir);
+	strbuf_addf(&sb, "%s/%s", ref_store->gitdir, refs_check_dir);
 
 	iter = dir_iterator_begin(sb.buf, 0);
 	if (!iter) {
@@ -3478,7 +3476,7 @@ static int files_fsck_refs_dir(struct ref_store *ref_store,
 				fprintf_ln(stderr, "Checking %s/%s",
 					   refs_check_dir, iter->relative_path);
 			for (size_t i = 0; fsck_refs_fn[i]; i++) {
-				if (fsck_refs_fn[i](o, gitdir, refs_check_dir, iter))
+				if (fsck_refs_fn[i](ref_store, o, refs_check_dir, iter))
 					ret = -1;
 			}
 		} else {
@@ -3507,7 +3505,7 @@ static int files_fsck_refs(struct ref_store *ref_store,
 	};
 
 	if (o->verbose)
-		fprintf_ln(stderr, "Checking references consistency");
+		fprintf_ln(stderr, _("Checking references consistency"));
 	return files_fsck_refs_dir(ref_store, o,  "refs", fsck_refs_fn);
 
 }
diff --git a/t/t0602-reffiles-fsck.sh b/t/t0602-reffiles-fsck.sh
index 2be28427ab..71a4d1a5ae 100755
--- a/t/t0602-reffiles-fsck.sh
+++ b/t/t0602-reffiles-fsck.sh
@@ -26,7 +26,7 @@ test_expect_success 'ref name should be checked' '
 	git tag multi_hierarchy/tag-2 &&
 
 	cp $branch_dir_prefix/branch-1 $branch_dir_prefix/.branch-1 &&
-	test_must_fail git fsck 2>err &&
+	test_must_fail git refs verify 2>err &&
 	cat >expect <<-EOF &&
 	error: refs/heads/.branch-1: badRefName: invalid refname format
 	EOF
@@ -34,7 +34,7 @@ test_expect_success 'ref name should be checked' '
 	test_cmp expect err &&
 
 	cp $branch_dir_prefix/branch-1 $branch_dir_prefix/@ &&
-	test_must_fail git fsck 2>err &&
+	test_must_fail git refs verify 2>err &&
 	cat >expect <<-EOF &&
 	error: refs/heads/@: badRefName: invalid refname format
 	EOF
@@ -42,7 +42,7 @@ test_expect_success 'ref name should be checked' '
 	test_cmp expect err &&
 
 	cp $tag_dir_prefix/multi_hierarchy/tag-2 $tag_dir_prefix/multi_hierarchy/@ &&
-	test_must_fail git fsck 2>err &&
+	test_must_fail git refs verify 2>err &&
 	cat >expect <<-EOF &&
 	error: refs/tags/multi_hierarchy/@: badRefName: invalid refname format
 	EOF
@@ -50,12 +50,12 @@ test_expect_success 'ref name should be checked' '
 	test_cmp expect err &&
 
 	cp $tag_dir_prefix/tag-1 $tag_dir_prefix/tag-1.lock &&
-	git fsck 2>err &&
+	git refs verify 2>err &&
 	rm $tag_dir_prefix/tag-1.lock &&
 	test_must_be_empty err &&
 
 	cp $tag_dir_prefix/tag-1 $tag_dir_prefix/.lock &&
-	test_must_fail git fsck 2>err &&
+	test_must_fail git refs verify 2>err &&
 	cat >expect <<-EOF &&
 	error: refs/tags/.lock: badRefName: invalid refname format
 	EOF
@@ -76,18 +76,16 @@ test_expect_success 'ref name check should be adapted into fsck messages' '
 	git checkout -b branch-2 &&
 	git tag tag-2 &&
 
-
 	cp $branch_dir_prefix/branch-1 $branch_dir_prefix/.branch-1 &&
-	git -c fsck.badRefName=warn fsck 2>err &&
+	git -c fsck.badRefName=warn refs verify 2>err &&
 	cat >expect <<-EOF &&
 	warning: refs/heads/.branch-1: badRefName: invalid refname format
 	EOF
 	rm $branch_dir_prefix/.branch-1 &&
 	test_cmp expect err &&
 
-
 	cp $branch_dir_prefix/branch-1 $branch_dir_prefix/@ &&
-	git -c fsck.badRefName=ignore fsck 2>err &&
+	git -c fsck.badRefName=ignore refs verify 2>err &&
 	test_must_be_empty err
 '
 
-- 
2.46.0


  parent reply	other threads:[~2024-08-05 16:42 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         ` [PATCH v6 01/11] fsck: add "fsck_objects_options" to hold objects-related options shejialuo
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                       ` shejialuo [this message]
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=ZrEBKjzbyxtMdCCx@ArchLinux \
    --to=shejialuo@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jltobler@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).