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 v14 00/11] ref consistency check infra setup
Date: Thu, 1 Aug 2024 23:11:21 +0800 [thread overview]
Message-ID: <ZqulmWVBaeyP4blf@ArchLinux> (raw)
In-Reply-To: <ZqeXrPROpEg_pRS2@ArchLinux>
Hi All,
This version does the following things:
1. By following the advice from Patrick, we should make the callback
function be generic by adding only one "void * fsck_report" parameter.
Thus the commit sequence will be much more clearer. And it wll be much
easier for reviewers to review. And I have split the commit into more
commits in this version.
2. Enhance the commit messages to provide more context about why we
should do this.
3. Patrick advices that we should initialize the "fsck_options" member
when parsing the options. However, because the original "strict" and
"verbose" field are defined as the bit field, we cannot take the address
of them. So I simply remove the bit field.
4. As Patrick said, ".lock" should not be reported as error. At current,
ignore files ending with ".lock".
5. Add a fsck msg type called "badRefFiletype" which indicates that a
ref has a bad file type when scanning the directory.
6. Junio advices instead of using "fsck_refs_fns", we should use the
singular version "fsck_refs_fn", fix this.
7. Drop the last patch because in this series, we mainly focus on the
infra, I will add a series later to add ref content check.
However, there is one thing holding. Junio advices that I should
follow the Patrick's change to change the prototype of "files_fsck_refs_fn"
https://lore.kernel.org/git/fe0e2c3617c8040c632dbc3de613a1d22e8070f7.1722316795.git.ps@pks.im/
However, at current, this patch is not in the cooking tree. I will
handle this later.
shejialuo (11):
fsck: rename "skiplist" to "skip_oids"
fsck: make "fsck_error" callback generic
fsck: add a unified interface for reporting fsck messages
fsck: add refs report function
fsck: add refs-related error callback
fsck: rename objects-related fsck error functions
refs: set up ref consistency check infrastructure
builtin/refs: add verify subcommand
builtin/fsck: add `git-refs verify` child process
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 | 34 +++++++--
builtin/mktag.c | 3 +-
builtin/refs.c | 34 +++++++++
fsck.c | 131 +++++++++++++++++++++++++++-------
fsck.h | 76 +++++++++++++++-----
object-file.c | 9 ++-
refs.c | 5 ++
refs.h | 8 +++
refs/debug.c | 11 +++
refs/files-backend.c | 118 +++++++++++++++++++++++++++++-
refs/packed-backend.c | 8 +++
refs/refs-internal.h | 6 ++
refs/reftable-backend.c | 8 +++
t/t0602-reffiles-fsck.sh | 94 ++++++++++++++++++++++++
16 files changed, 504 insertions(+), 60 deletions(-)
create mode 100755 t/t0602-reffiles-fsck.sh
Range-diff against v13:
1: 772cad5b92 = 1: 75b64a219d fsck: rename "skiplist" to "skip_oids"
2: e76449977d < -: ---------- fsck: add a unified interface for reporting fsck messages
-: ---------- > 2: 81433d1628 fsck: make "fsck_error" callback generic
-: ---------- > 3: 0792c51e6d fsck: add a unified interface for reporting fsck messages
-: ---------- > 4: ecd144af15 fsck: add refs report function
-: ---------- > 5: e80dba0cab fsck: add refs-related error callback
3: 26bde4283f ! 6: a61db42bf2 fsck: rename objects-related fsck error functions
@@ Metadata
## Commit message ##
fsck: rename objects-related fsck error functions
- The names of objects-related fsck error functions are general. It's OK
+ The names of objects-related fsck error functions are generic. It's OK
when there is only object database check. However, we have introduced
refs database check report function. To avoid ambiguity, rename
object-related fsck error functions to explicitly indicate these
@@ builtin/fsck.c: static int objerror(struct object *obj, const char *err)
}
-static int fsck_error_func(struct fsck_options *o UNUSED,
-- const struct object_id *oid,
-- enum object_type object_type,
-- const struct fsck_refs_info *refs_info UNUSED,
+- void *fsck_report,
- enum fsck_msg_type msg_type,
- enum fsck_msg_id msg_id UNUSED,
- const char *message)
+static int fsck_objects_error_func(struct fsck_options *o UNUSED,
-+ const struct object_id *oid,
-+ enum object_type object_type,
-+ const struct fsck_refs_info *refs_info UNUSED,
++ void *fsck_report,
+ enum fsck_msg_type msg_type,
+ enum fsck_msg_id msg_id UNUSED,
+ const char *message)
{
- switch (msg_type) {
- case FSCK_WARN:
+ struct fsck_object_report *report = fsck_report;
+ const struct object_id *oid = report->oid;
@@ builtin/fsck.c: int cmd_fsck(int argc, const char **argv, const char *prefix)
fsck_walk_options.walk = mark_object;
@@ fsck.c: int fsck_buffer(const struct object_id *oid, enum object_type type,
}
-int fsck_error_function(struct fsck_options *o,
-- const struct object_id *oid,
-- enum object_type object_type UNUSED,
-- const struct fsck_refs_info *refs_info UNUSED,
+- void *fsck_report,
- enum fsck_msg_type msg_type,
- enum fsck_msg_id msg_id UNUSED,
- const char *message)
+int fsck_objects_error_function(struct fsck_options *o,
-+ const struct object_id *oid,
-+ enum object_type object_type UNUSED,
-+ const struct fsck_refs_info *refs_info UNUSED,
++ void *fsck_report,
+ enum fsck_msg_type msg_type,
+ enum fsck_msg_id msg_id UNUSED,
+ const char *message)
{
- if (msg_type == FSCK_WARN) {
- warning("object %s: %s", fsck_describe_object(o, oid), message);
+ struct fsck_object_report *report = fsck_report;
+ const struct object_id *oid = report->oid;
@@ fsck.c: int git_fsck_config(const char *var, const char *value,
* Custom error callbacks that are used in more than one place.
*/
-int fsck_error_cb_print_missing_gitmodules(struct fsck_options *o,
-- const struct object_id *oid,
-- enum object_type object_type,
-- const struct fsck_refs_info *refs_info,
+- void *fsck_report,
- enum fsck_msg_type msg_type,
- enum fsck_msg_id msg_id,
- const char *message)
+int fsck_objects_error_cb_print_missing_gitmodules(struct fsck_options *o,
-+ const struct object_id *oid,
-+ enum object_type object_type,
-+ const struct fsck_refs_info *refs_info,
++ void *fsck_report,
+ enum fsck_msg_type msg_type,
+ enum fsck_msg_id msg_id,
+ const char *message)
{
if (msg_id == FSCK_MSG_GITMODULES_MISSING) {
- puts(oid_to_hex(oid));
+ struct fsck_object_report *report = fsck_report;
+ puts(oid_to_hex(report->oid));
return 0;
}
-- return fsck_error_function(o, oid, object_type, refs_info,
-- msg_type, msg_id, message);
-+ return fsck_objects_error_function(o, oid, object_type, refs_info,
-+ msg_type, msg_id, message);
+- return fsck_error_function(o, fsck_report, msg_type, msg_id, message);
++ return fsck_objects_error_function(o, fsck_report, msg_type,msg_id, message);
}
## fsck.h ##
@@ fsck.h: typedef int (*fsck_error)(struct fsck_options *o,
const char *message);
-int fsck_error_function(struct fsck_options *o,
-- const struct object_id *oid, enum object_type object_type,
-- const struct fsck_refs_info *refs_info,
+- void *fsck_report,
- enum fsck_msg_type msg_type, enum fsck_msg_id msg_id,
- const char *message);
-int fsck_error_cb_print_missing_gitmodules(struct fsck_options *o,
-- const struct object_id *oid,
-- enum object_type object_type,
-- const struct fsck_refs_info *refs_info,
+- void *fsck_report,
- enum fsck_msg_type msg_type,
- enum fsck_msg_id msg_id,
- const char *message);
+int fsck_objects_error_function(struct fsck_options *o,
-+ const struct object_id *oid, enum object_type object_type,
-+ const struct fsck_refs_info *refs_info,
++ void *fsck_report,
+ enum fsck_msg_type msg_type, enum fsck_msg_id msg_id,
+ const char *message);
+int fsck_objects_error_cb_print_missing_gitmodules(struct fsck_options *o,
-+ const struct object_id *oid,
-+ enum object_type object_type,
-+ const struct fsck_refs_info *refs_info,
++ void *fsck_report,
+ enum fsck_msg_type msg_type,
+ enum fsck_msg_id msg_id,
+ const char *message);
- /*
- * The information for reporting refs-related error message
+ int fsck_refs_error_function(struct fsck_options *options,
+ void *fsck_report,
@@ fsck.h: struct fsck_options {
.gitmodules_done = OIDSET_INIT, \
.gitattributes_found = OIDSET_INIT, \
@@ fsck.h: struct fsck_options {
- .error_func = fsck_error_cb_print_missing_gitmodules, \
+ .error_func = fsck_objects_error_cb_print_missing_gitmodules, \
}
-
- /* descend in all linked child objects
+ #define FSCK_REFS_OPTIONS_DEFAULT { \
+ .error_func = fsck_refs_error_function, \
4: 56fc833a54 < -: ---------- fsck: add refs-related error report function
5: 90f992ecfb ! 7: f2248bc52d refs: set up ref consistency check infrastructure
@@ Metadata
## Commit message ##
refs: set up ref consistency check infrastructure
+ The "struct ref_store" is the base class which contains the "be" pointer
+ which provides backend-specific functions whose interfaces are defined
+ in the "ref_storage_be". We could reuse this polymorphism to define only
+ one interface. For every backend, we need to provide its own function
+ pointer.
+
The interfaces defined in the `ref_storage_be` are carefully structured
in semantic. It's organized as the five parts:
6: b2277f5ef4 ! 8: 0c5463d757 git refs: add verify subcommand
@@ Metadata
Author: shejialuo <shejialuo@gmail.com>
## Commit message ##
- git refs: add verify subcommand
+ builtin/refs: add verify subcommand
Introduce a new subcommand "verify" in git-refs(1) to allow the user to
check the reference database consistency and also this subcommand will
- be used as the entry point of checking refs for "git-fsck(1)". Last, add
- "verbose" field into "fsck_options" to indicate whether we should print
- verbose messages when checking refs and objects consistency.
+ be used as the entry point of checking refs for "git-fsck(1)".
+
+ Add "verbose" field into "fsck_options" to indicate whether we should
+ print verbose messages when checking refs and objects consistency.
+
+ Remove bit-field for "strict" field, this is because we cannot take
+ address of a bit-field which makes it unhandy to set member variables
+ when parsing the command line options.
+
+ The "git-fsck(1)" declares "fsck_options" variable with "static"
+ identifier which avoids complaint by the leak-checker. However, in
+ "git-refs verify", we need to do memory clean manually. Thus add
+ "fsck_options_clear" function in "fsck.c" to provide memory clean
+ operation.
Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: Karthik Nayak <karthik.188@gmail.com>
@@ Documentation/git-refs.txt: include::ref-storage-format.txt[]
+The following options are specific to 'git refs verify':
+
+--strict::
-+ Enable more strict checking, every WARN severity for the `Fsck Messages`
-+ be seen as ERROR. See linkgit:git-fsck[1].
++ Enable stricter error checking. This will cause warnings to be
++ reported as errors. See linkgit:git-fsck[1].
+
+--verbose::
+ When verifying the reference database consistency, be chatty.
@@ builtin/refs.c: static int cmd_refs_migrate(int argc, const char **argv, const c
+ REFS_VERIFY_USAGE,
+ NULL,
+ };
-+ unsigned int verbose = 0, strict = 0;
+ struct option options[] = {
-+ OPT__VERBOSE(&verbose, N_("be verbose")),
-+ OPT_BOOL(0, "strict", &strict, N_("enable strict checking")),
++ OPT_BOOL(0, "verbose", &fsck_refs_options.verbose, N_("be verbose")),
++ OPT_BOOL(0, "strict", &fsck_refs_options.strict, N_("enable strict checking")),
+ OPT_END(),
+ };
+ int ret;
@@ builtin/refs.c: static int cmd_refs_migrate(int argc, const char **argv, const c
+ if (argc)
+ usage(_("'git refs verify' takes no arguments"));
+
-+ if (verbose)
-+ fsck_refs_options.verbose = 1;
-+ if (strict)
-+ fsck_refs_options.strict = 1;
-+
+ git_config(git_fsck_config, &fsck_refs_options);
+ prepare_repo_settings(the_repository);
+
+ ret = refs_fsck(get_main_ref_store(the_repository), &fsck_refs_options);
+
-+ /*
-+ * Explicitly free the allocated array and "skip_oids" set
-+ */
-+ free(fsck_refs_options.msg_type);
-+ oidset_clear(&fsck_refs_options.skip_oids);
++ fsck_options_clear(&fsck_refs_options);
+ return ret;
+}
+
@@ builtin/refs.c: static int cmd_refs_migrate(int argc, const char **argv, const c
};
+ ## fsck.c ##
+@@ fsck.c: int fsck_finish(struct fsck_options *options)
+ return ret;
+ }
+
++void fsck_options_clear(struct fsck_options *options)
++{
++ free(options->msg_type);
++ oidset_clear(&options->skip_oids);
++ oidset_clear(&options->gitmodules_found);
++ oidset_clear(&options->gitmodules_done);
++ oidset_clear(&options->gitattributes_found);
++ oidset_clear(&options->gitattributes_done);
++ kh_clear_oid_map(options->object_names);
++}
++
+ int git_fsck_config(const char *var, const char *value,
+ const struct config_context *ctx, void *cb)
+ {
+
## fsck.h ##
-@@ fsck.h: struct fsck_options {
+@@ fsck.h: struct fsck_ref_report {
+ struct fsck_options {
fsck_walk_func walk;
fsck_error error_func;
- unsigned strict:1;
-+ unsigned verbose:1;
+- unsigned strict:1;
++ unsigned strict;
++ unsigned verbose;
enum fsck_msg_type *msg_type;
struct oidset skip_oids;
struct oidset gitmodules_found;
+@@ fsck.h: int fsck_tag_standalone(const struct object_id *oid, const char *buffer,
+ */
+ int fsck_finish(struct fsck_options *options);
+
++/*
++ * Clear the fsck_options struct, freeing any allocated memory.
++ */
++void fsck_options_clear(struct fsck_options *options);
++
+ /*
+ * Report an error or warning for refs.
+ */
7: f96d0f200d = 9: 0ac25c2f6e builtin/fsck: add `git-refs verify` child process
8: f9a0c16bef ! 10: 2b6f5e6c46 files-backend: add unified interface for refs scanning
@@ Commit message
Mentored-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: shejialuo <shejialuo@gmail.com>
+ ## Documentation/fsck-msgids.txt ##
+@@
+ `badParentSha1`::
+ (ERROR) A commit object has a bad parent sha1.
+
++`badRefFiletype`::
++ (ERROR) A ref has a bad file type.
++
+ `badTagName`::
+ (INFO) A tag has an invalid format.
+
+
+ ## fsck.h ##
+@@ fsck.h: enum fsck_msg_type {
+ FUNC(BAD_NAME, ERROR) \
+ FUNC(BAD_OBJECT_SHA1, ERROR) \
+ FUNC(BAD_PARENT_SHA1, ERROR) \
++ FUNC(BAD_REF_FILETYPE, ERROR) \
+ FUNC(BAD_TIMEZONE, ERROR) \
+ FUNC(BAD_TREE, ERROR) \
+ FUNC(BAD_TREE_SHA1, ERROR) \
+
## refs/files-backend.c ##
@@
#include "../gettext.h"
@@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
+static int files_fsck_refs_dir(struct ref_store *ref_store,
+ struct fsck_options *o,
+ const char *refs_check_dir,
-+ files_fsck_refs_fn *fsck_refs_fns)
++ files_fsck_refs_fn *fsck_refs_fn)
+{
+ const char *gitdir = ref_store->gitdir;
+ struct strbuf sb = STRBUF_INIT;
@@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
+ strbuf_addf(&sb, "%s/%s", gitdir, refs_check_dir);
+
+ iter = dir_iterator_begin(sb.buf, 0);
-+
+ if (!iter) {
-+ ret = error_errno("cannot open directory %s", sb.buf);
++ ret = error_errno(_("cannot open directory %s"), sb.buf);
+ goto out;
+ }
+
@@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
+ if (o->verbose)
+ fprintf_ln(stderr, "Checking %s/%s",
+ refs_check_dir, iter->relative_path);
-+ for (size_t i = 0; fsck_refs_fns[i]; i++) {
-+ if (fsck_refs_fns[i](o, gitdir, refs_check_dir, iter))
++ for (size_t i = 0; fsck_refs_fn[i]; i++) {
++ if (fsck_refs_fn[i](o, gitdir, refs_check_dir, iter))
+ ret = -1;
+ }
+ } else {
-+ ret = error(_("unexpected file type for '%s'"),
-+ iter->basename);
++ struct fsck_ref_report report = { .path = iter->basename };
++ if (fsck_report_ref(o, &report,
++ FSCK_MSG_BAD_REF_FILETYPE,
++ "unexpected file type"))
++ ret = -1;
+ }
+ }
+
@@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
+static int files_fsck_refs(struct ref_store *ref_store,
+ struct fsck_options *o)
+{
-+ files_fsck_refs_fn fsck_refs_fns[]= {
-+ NULL
++ files_fsck_refs_fn fsck_refs_fn[]= {
++ NULL,
+ };
+
+ if (o->verbose)
+ fprintf_ln(stderr, "Checking references consistency");
-+
-+ return files_fsck_refs_dir(ref_store, o, "refs", fsck_refs_fns);
++ return files_fsck_refs_dir(ref_store, o, "refs", fsck_refs_fn);
+
+}
+
@@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
files_downcast(ref_store, REF_STORE_READ, "fsck");
- return refs->packed_ref_store->be->fsck(refs->packed_ref_store, o);
-+ return refs->packed_ref_store->be->fsck(refs->packed_ref_store, o) |
-+ files_fsck_refs(ref_store, o);
++ return files_fsck_refs(ref_store, o) |
++ refs->packed_ref_store->be->fsck(refs->packed_ref_store, o);
}
struct ref_storage_be refs_be_files = {
9: ee55ee5787 < -: ---------- fsck: add ref name check for files backend
10: 9256328cbb < -: ---------- fsck: add ref content check for files backend
-: ---------- > 11: 14f2739bd7 fsck: add ref name check for files backend
--
2.45.2
next prev parent reply other threads:[~2024-08-01 15:11 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 ` shejialuo [this message]
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=ZqulmWVBaeyP4blf@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).