git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[GSoC][PATCH v5 00/12] ref consistency check infra setup

From
shejialuo <shejialuo@gmail.com>
Date
Jun 27, 2024, 15:08 UTC
Message-ID
<Zn2Ah3WDhtOmzrzn@ArchLinux>
In-Reply-To
<ZnKKy52QFO2UhqM6@ArchLinux>

Hi All, this version have been changed a lot compared with the v4. The mainly changed part is how to integrate the ref checks into the current git-fsck(1) which concentrates on the object database check.

In the previous version, I design the following structures:
  struct fsck_options {
    struct fsck_refs_options refs_options;
    struct fsck_objs_options objs_options;
    enum fsck_msg_type *msg_type;
    unsigned strict:1,
             verbose:1;
  };

Although Junio said It's OK that therea are sub-structures in "fsck_options", I decide not to use the above design. This is because in the current implementation, we either check refs or objects. The above design is a combination. It will give us the feeling that "fsck_options" is used to check both refs and objects.

So I decide to create two new structs "fsck_objects_options" and "fsck_refs_options". So we need to think about how to design this. In my implementation, I totally change the "fsck_options" to be a general options which "fsck_objects_options" and "fsck_refs_options" will incorporate.

However, there are some options related to configs such as "enum fsck_msg_type *msg_type" and "skiplist". I change them into the "fskc.c" as the static variable for singleton pattern.

And then extract the common options into "fsck_options". Thus we could reuse some interfaces when chekcing refs or objects.

At last, solve the review from Junio. Junio hopes that we could use a unified interface to report fsck error messages. This version solves this.

BTY, this patch is based on the commit:
  1e1586e4ed (The sixteenth batch, 2024-06-24)
Thanks all
shejialuo (12):
  fsck: rename "fsck_options" to "fsck_objects_options"
  fsck: use "fsck_configs" to set up configs
  fsck: abstract common options for reusing
  fsck: add "fsck_refs_options" struct
  fsck: add a unified interface for reporting fsck messages
  fsck: add "fsck_refs_options" initialization macros
  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
  fsck: add ref content check for files backend
 Documentation/fsck-msgids.txt |  12 ++
 Documentation/git-refs.txt    |  13 ++
 builtin/fsck.c                |  38 +++--
 builtin/index-pack.c          |  18 +--
 builtin/mktag.c               |  15 +-
 builtin/refs.c                |  36 +++++
 builtin/unpack-objects.c      |  14 +-
 fetch-pack.c                  |  12 +-
 fsck.c                        | 197 +++++++++++++++++++-------
 fsck.h                        | 122 ++++++++++++----
 object-file.c                 |  20 +--
 refs.c                        |   7 +-
 refs.h                        |   8 ++
 refs/debug.c                  |  11 ++
 refs/files-backend.c          | 255 +++++++++++++++++++++++++++++++++-
 refs/packed-backend.c         |   8 ++
 refs/refs-internal.h          |  11 +-
 refs/reftable-backend.c       |   8 ++
 t/t0602-reffiles-fsck.sh      | 211 ++++++++++++++++++++++++++++
 19 files changed, 889 insertions(+), 127 deletions(-)
 create mode 100755 t/t0602-reffiles-fsck.sh
Range-diff against v4:
 1:  2d2c1f2cd3 <  -:  ---------- fsck: add refs check interfaces to interact with fsck error levels
 -:  ---------- >  1:  d83b5797cb fsck: rename "fsck_options" to "fsck_objects_options"
 -:  ---------- >  2:  88000b092a fsck: use "fsck_configs" to set up configs
 -:  ---------- >  3:  65093bae64 fsck: abstract common options for reusing
 -:  ---------- >  4:  403750da30 fsck: add "fsck_refs_options" struct
 -:  ---------- >  5:  8dea5654d5 fsck: add a unified interface for reporting fsck messages
 -:  ---------- >  6:  8fb62b54c6 fsck: add "fsck_refs_options" initialization macros
 2:  4bacffe44e !  7:  2ecd1f5407 refs: set up ref consistency check infrastructure
    @@ refs.c: int check_refname_format(const char *refname, int flags)
      	return check_or_sanitize_refname(refname, flags, NULL);
      }
      
    -+int refs_fsck(struct ref_store *refs, struct fsck_options *o)
    ++int refs_fsck(struct ref_store *refs, struct fsck_refs_options *o)
     +{
     +	return refs->be->fsck(refs, o);
     +}
    @@ refs.h
      
      #include "commit.h"
      
    -+struct fsck_options;
    ++struct fsck_refs_options;
      struct object_id;
      struct ref_store;
      struct repository;
    @@ refs.h: int refs_for_each_reflog(struct ref_store *refs, each_reflog_fn fn, void
     + * reflogs are consistent, and non-zero otherwise. The errors will be
     + * written to stderr.
     + */
    -+int refs_fsck(struct ref_store *refs, struct fsck_options *o);
    ++int refs_fsck(struct ref_store *refs, struct fsck_refs_options *o);
     +
      /*
       * Apply the rules from check_refname_format, but mutate the result until it
    @@ refs/debug.c: static int debug_reflog_expire(struct ref_store *ref_store, const
      }
      
     +static int debug_fsck(struct ref_store *ref_store,
    -+		      struct fsck_options *o)
    ++		      struct fsck_refs_options *o)
     +{
     +	struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;
     +	int res = drefs->refs->be->fsck(drefs->refs, o);
    @@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
      }
      
     +static int files_fsck(struct ref_store *ref_store,
    -+		      struct fsck_options *o)
    ++		      struct fsck_refs_options *o)
     +{
     +	int ret;
     +	struct files_ref_store *refs =
    @@ refs/packed-backend.c: static struct ref_iterator *packed_reflog_iterator_begin(
      }
      
     +static int packed_fsck(struct ref_store *ref_store,
    -+		       struct fsck_options *o)
    ++		       struct fsck_refs_options *o)
     +{
     +	return 0;
     +}
    @@ refs/refs-internal.h: typedef int read_raw_ref_fn(struct ref_store *ref_store, c
      				 struct strbuf *referent);
      
     +typedef int fsck_fn(struct ref_store *ref_store,
    -+		    struct fsck_options *o);
    ++		    struct fsck_refs_options *o);
     +
      struct ref_storage_be {
      	const char *name;
    @@ refs/reftable-backend.c: static int reftable_be_reflog_expire(struct ref_store *
      }
      
     +static int reftable_be_fsck(struct ref_store *ref_store,
    -+			    struct fsck_options *o)
    ++			    struct fsck_refs_options *o)
     +{
     +	return 0;
     +}
 3:  f00acab4d1 !  8:  534a3d00af builtin/refs: add verify subcommand
    @@ builtin/refs.c: static int cmd_refs_migrate(int argc, const char **argv, const c
      
     +static int cmd_refs_verify(int argc, const char **argv, const char *prefix)
     +{
    ++	struct fsck_refs_options fsck_refs_options = FSCK_REFS_OPTIONS_DEFAULT;
     +	const char * const verify_usage[] = {
     +		REFS_VERIFY_USAGE,
     +		NULL,
     +	};
    -+	int ret = 0;
     +	unsigned int verbose = 0, strict = 0;
    -+	struct fsck_options fsck_options = FSCK_OPTIONS_DEFAULT;
     +	struct option options[] = {
     +		OPT__VERBOSE(&verbose, N_("be verbose")),
     +		OPT_BOOL(0, "strict", &strict, N_("enable strict checking")),
    @@ builtin/refs.c: static int cmd_refs_migrate(int argc, const char **argv, const c
     +		usage(_("too many arguments"));
     +
     +	if (verbose)
    -+		fsck_options.verbose = 1;
    ++		fsck_refs_options.fsck_options.verbose = 1;
     +	if (strict)
    -+		fsck_options.strict = 1;
    ++		fsck_refs_options.fsck_options.strict = 1;
     +
    -+	git_config(git_fsck_config, &fsck_options);
    ++	git_config(git_fsck_config, &fsck_refs_options.fsck_options);
     +	prepare_repo_settings(the_repository);
     +
    -+	ret = refs_fsck(get_main_ref_store(the_repository), &fsck_options);
    -+
    -+	/*
    -+	 * Explicitly free the allocated array and object skiplist set. Because
    -+	 * we reuse `git_fsck_config` here. It will still set the skiplist.
    -+	 */
    -+	free(fsck_options.msg_type);
    -+	oidset_clear(&fsck_options.objs_options.skiplist);
    -+	return ret;
    ++	return refs_fsck(get_main_ref_store(the_repository), &fsck_refs_options);
     +}
     +
      int cmd_refs(int argc, const char **argv, const char *prefix)
 4:  6494f5b0c2 =  9:  054c8cea89 builtin/fsck: add `git-refs verify` child process
 5:  2c064f4f71 ! 10:  7f87c6a26e files-backend: add unified interface for refs scanning
    @@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct 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,
    ++typedef int (*files_fsck_refs_fn)(struct fsck_refs_options *o,
     +				  const char *gitdir,
     +				  const char *refs_check_dir,
     +				  struct dir_iterator *iter);
     +
     +static int files_fsck_refs_dir(struct ref_store *ref_store,
    -+			       struct fsck_options *o,
    ++			       struct fsck_refs_options *o,
     +			       const char *refs_check_dir,
     +			       files_fsck_refs_fn *fsck_refs_fns)
     +{
    @@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
     +			continue;
     +		} else if (S_ISREG(iter->st.st_mode) ||
     +			   S_ISLNK(iter->st.st_mode)) {
    -+			if (o->verbose)
    ++			if (o->fsck_options.verbose)
     +				fprintf_ln(stderr, "Checking %s/%s",
     +					   refs_check_dir, iter->relative_path);
     +			for (size_t i = 0; fsck_refs_fns[i]; i++) {
    @@ 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)
    ++			   struct fsck_refs_options *o)
     +{
     +	int ret;
     +	files_fsck_refs_fn fsck_refs_fns[]= {
     +		NULL
     +	};
     +
    -+	if (o->verbose)
    ++	if (o->fsck_options.verbose)
     +		fprintf_ln(stderr, "Checking references consistency");
     +
     +	ret = files_fsck_refs_dir(ref_store, o, "refs", fsck_refs_fns);
    @@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store
     +}
     +
      static int files_fsck(struct ref_store *ref_store,
    - 		      struct fsck_options *o)
    + 		      struct fsck_refs_options *o)
      {
     @@ refs/files-backend.c: static int files_fsck(struct ref_store *ref_store,
      	struct files_ref_store *refs =
 6:  88b54b9e1a ! 11:  7d78014e5f fsck: add ref name check for files backend
    @@ fsck.h: enum fsck_msg_type {
      	FUNC(BAD_TREE_SHA1, ERROR) \
     
      ## refs/files-backend.c ##
    -@@ refs/files-backend.c: typedef int (*files_fsck_refs_fn)(struct fsck_options *o,
    +@@ refs/files-backend.c: typedef int (*files_fsck_refs_fn)(struct fsck_refs_options *o,
      				  const char *refs_check_dir,
      				  struct dir_iterator *iter);
      
    -+static int files_fsck_refs_name(struct fsck_options *o,
    ++static int files_fsck_refs_name(struct fsck_refs_options *o,
     +				const char *gitdir UNUSED,
     +				const char *refs_check_dir,
     +				struct dir_iterator *iter)
    @@ refs/files-backend.c: typedef int (*files_fsck_refs_fn)(struct fsck_options *o,
     +
     +	if (check_refname_format(iter->basename, REFNAME_ALLOW_ONELEVEL)) {
     +		strbuf_addf(&sb, "%s/%s", refs_check_dir, iter->relative_path);
    -+		ret = fsck_refs_report(o, sb.buf,
    ++		ret = fsck_refs_report(o, NULL, sb.buf,
     +				       FSCK_MSG_BAD_REF_NAME,
     +				       "invalid refname format");
     +	}
    @@ refs/files-backend.c: typedef int (*files_fsck_refs_fn)(struct fsck_options *o,
     +}
     +
      static int files_fsck_refs_dir(struct ref_store *ref_store,
    - 			       struct fsck_options *o,
    + 			       struct fsck_refs_options *o,
      			       const char *refs_check_dir,
     @@ refs/files-backend.c: static int files_fsck_refs(struct ref_store *ref_store,
      {
 7:  8309a4746a ! 12:  16209a73ed fsck: add ref content check for files backend
    @@ refs/files-backend.c: int parse_loose_ref_contents(const char *buf, struct objec
      	return 0;
      }
      
    -@@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
    +@@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_refs_options *o,
      	return ret;
      }
      
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     + * would be the content after "refs:". For symblic link, "pointee_name" would
     + * be the relative path agaignst "gitdir".
     + */
    -+static int files_fsck_symref_target(struct fsck_options *o,
    ++static int files_fsck_symref_target(struct fsck_refs_options *o,
     +				    const char *refname,
     +				    const char *pointee_name,
     +				    const char *pointee_path)
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     +
     +	if (!skip_prefix(pointee_name, "refs/", &p)) {
     +
    -+		ret = fsck_refs_report(o, refname,
    ++		ret = fsck_refs_report(o, NULL, refname,
     +				       FSCK_MSG_BAD_SYMREF_POINTEE,
     +				       "point to target out of refs hierarchy");
     +		goto out;
     +	}
     +
     +	if (check_refname_format(pointee_name, 0)) {
    -+		ret = fsck_refs_report(o, refname,
    ++		ret = fsck_refs_report(o, NULL, refname,
     +				       FSCK_MSG_BAD_SYMREF_POINTEE,
     +				       "point to invalid refname");
     +	}
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     +		goto out;
     +
     +	if (!S_ISREG(st.st_mode) && !S_ISLNK(st.st_mode)) {
    -+		ret = fsck_refs_report(o, refname,
    ++		ret = fsck_refs_report(o, NULL, refname,
     +				       FSCK_MSG_BAD_SYMREF_POINTEE,
     +				       "point to invalid target");
     +		goto out;
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     +	return ret;
     +}
     +
    -+static int files_fsck_refs_content(struct fsck_options *o,
    ++static int files_fsck_refs_content(struct fsck_refs_options *o,
     +				   const char *gitdir,
     +				   const char *refs_check_dir,
     +				   struct dir_iterator *iter)
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     +
     +		if (!skip_prefix(pointee_path.buf,
     +				 abs_gitdir.buf, &pointee_name)) {
    -+			ret = fsck_refs_report(o, refname.buf,
    ++			ret = fsck_refs_report(o, NULL, refname.buf,
     +					       FSCK_MSG_BAD_SYMREF_POINTEE,
     +					       "point to target outside gitdir");
     +			goto clean;
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     +	if (parse_loose_ref_contents(ref_content.buf, &oid,
     +				     &referent, &type,
     +				     &failure_errno, &trailing)) {
    -+		ret = fsck_refs_report(o, refname.buf,
    ++		ret = fsck_refs_report(o, NULL, refname.buf,
     +				       FSCK_MSG_BAD_REF_CONTENT,
     +				       "invalid ref content");
     +		goto clean;
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     +		 * be reported as a warning.
     +		 */
     +		if (trailing && (*trailing != '\0' && *trailing != '\n')) {
    -+			ret = fsck_refs_report(o, refname.buf,
    ++			ret = fsck_refs_report(o, NULL, refname.buf,
     +					       FSCK_MSG_TRAILING_REF_CONTENT,
     +					       "trailing garbage in ref");
     +			goto clean;
    @@ refs/files-backend.c: static int files_fsck_refs_name(struct fsck_options *o,
     +}
     +
      static int files_fsck_refs_dir(struct ref_store *ref_store,
    - 			       struct fsck_options *o,
    + 			       struct fsck_refs_options *o,
      			       const char *refs_check_dir,
     @@ refs/files-backend.c: static int files_fsck_refs(struct ref_store *ref_store,
      	int ret;
-- 
2.45.2
Previous: shejialuoNext: shejialuo
Message 59 of 282 in “ref consistency check infra setup”
  1. shejialuoMay 30, 2024
  2. [GSoC][PATCH 1/2] refs: setup ref consistency check infrastructureshejialuo, May 30, 2024
  3. Junio C HamanoMay 31, 2024
  4. shejialuoMay 31, 2024
  5. Patrick SteinhardtJun 3, 2024
  6. Karthik NayakJun 3, 2024
  7. Eric SunshineJun 3, 2024
  8. [GSoC][PATCH 2/2] refs: add name and content check for file backendshejialuo, May 30, 2024
  9. Junio C HamanoMay 31, 2024
  10. shejialuoMay 31, 2024
  11. Eric SunshineMay 31, 2024
  12. Patrick SteinhardtJun 3, 2024
  13. [GSoC][PATCH v2 0/7] ref consistency check infra setupshejialuo, Jun 12, 2024
  14. [GSoC][PATCH v2 1/7] fsck: add refs check interfaces to interface with fsck error levelsshejialuo, Jun 12, 2024
  15. [GSoC][PATCH v2 2/7] refs: set up ref consistency check infrastructureshejialuo, Jun 12, 2024
  16. Karthik NayakJun 15, 2024
  17. [GSoC][PATCH v2 3/7] builtin/refs: add verify subcommandshejialuo, Jun 12, 2024
  18. Karthik NayakJun 15, 2024
  19. [GSoC][PATCH v2 4/7] builtin/fsck: add `git-refs verify` child processshejialuo, Jun 12, 2024
  20. Karthik NayakJun 15, 2024
  21. [GSoC][PATCH v2 5/7] files-backend: add unified interface for refs scanningshejialuo, Jun 12, 2024
  22. Karthik NayakJun 15, 2024
  23. shejialuoJun 18, 2024
  24. [GSoC][PATCH v2 6/7] fsck: add ref name check for files backendshejialuo, Jun 12, 2024
  25. [GSoC][PATCH v2 7/7] fsck: add ref content check for files backendshejialuo, Jun 12, 2024
  26. Junio C HamanoJun 13, 2024
  27. shejialuoJun 14, 2024
  28. Junio C HamanoJun 14, 2024
  29. jialuo sheJun 14, 2024
  30. Junio C HamanoJun 14, 2024
  31. shejialuoJun 12, 2024
  32. [GSoC][PATCH v3 0/7] ref consistency check infra setupshejialuo, Jun 18, 2024
  33. Junio C HamanoJun 18, 2024
  34. jialuo sheJun 18, 2024
  35. [GSoC][PATCH v3 1/7] fsck: add refs check interfaces to interface with fsck error levelsshejialuo, Jun 18, 2024
  36. Karthik NayakJun 18, 2024
  37. shejialuoJun 18, 2024
  38. Junio C HamanoJun 18, 2024
  39. jialuo sheJun 18, 2024
  40. shejialuoJun 19, 2024
  41. 2/7 refs: set up ref consistency check infrastructureshejialuo, Jun 18, 2024
  42. 3/7 builtin/refs: add verify subcommandshejialuo, Jun 18, 2024
  43. Karthik NayakJun 18, 2024
  44. shejialuoJun 18, 2024
  45. 4/7 builtin/fsck: add `git-refs verify` child processshejialuo, Jun 18, 2024
  46. 5/7 files-backend: add unified interface for refs scanningshejialuo, Jun 18, 2024
  47. 6/7 fsck: add ref name check for files backendshejialuo, Jun 18, 2024
  48. 7/7 fsck: add ref content check for files backendshejialuo, Jun 18, 2024
  49. [GSoC][PATCH v4 0/7] ref consistency check infra setupshejialuo, Jun 19, 2024
  50. [GSoC][PATCH v4 1/7] fsck: add refs check interfaces to interact with fsck error levelsshejialuo, Jun 19, 2024
  51. Junio C HamanoJun 20, 2024
  52. shejialuoJun 21, 2024
  53. [GSoC][PATCH v4 2/7] refs: set up ref consistency check infrastructureshejialuo, Jun 19, 2024
  54. [GSoC][PATCH v4 3/7] builtin/refs: add verify subcommandshejialuo, Jun 19, 2024
  55. [GSoC][PATCH v4 4/7] builtin/fsck: add `git-refs verify` child processshejialuo, Jun 19, 2024
  56. [GSoC][PATCH v4 5/7] files-backend: add unified interface for refs scanningshejialuo, Jun 19, 2024
  57. [GSoC][PATCH v4 6/7] fsck: add ref name check for files backendshejialuo, Jun 19, 2024
  58. [GSoC][PATCH v4 7/7] fsck: add ref content check for files backendshejialuo, Jun 19, 2024
  59. [GSoC][PATCH v5 00/12] ref consistency check infra setupshejialuo, Jun 27, 2024
  60. [GSoC][PATCH v5 01/12] fsck: rename "fsck_options" to "fsck_objects_options"shejialuo, Jun 27, 2024
  61. Junio C HamanoJun 27, 2024
  62. shejialuoJun 28, 2024
  63. [GSoC][PATCH v5 02/12] fsck: use "fsck_configs" to set up configsshejialuo, Jun 27, 2024
  64. Junio C HamanoJun 27, 2024
  65. shejialuoJun 28, 2024
  66. [GSoC][PATCH v5 03/12] fsck: abstract common options for reusingshejialuo, Jun 27, 2024
  67. [GSoC][PATCH v5 04/12] fsck: add "fsck_refs_options" structshejialuo, Jun 27, 2024
  68. [GSoC][PATCH v5 05/12] fsck: add a unified interface for reporting fsck messagesshejialuo, Jun 27, 2024
  69. [GSoC][PATCH v5 06/12] fsck: add "fsck_refs_options" initialization macrosshejialuo, Jun 27, 2024
  70. [GSoC][PATCH v5 07/12] refs: set up ref consistency check infrastructureshejialuo, Jun 27, 2024
  71. [GSoC][PATCH v5 08/12] builtin/refs: add verify subcommandshejialuo, Jun 27, 2024
  72. [GSoC][PATCH v5 09/12] builtin/fsck: add `git-refs verify` child processshejialuo, Jun 27, 2024
  73. [GSoC][PATCH v5 10/12] files-backend: add unified interface for refs scanningshejialuo, Jun 27, 2024
  74. [GSoC][PATCH v5 11/12] fsck: add ref name check for files backendshejialuo, Jun 27, 2024
  75. [GSoC][PATCH v5 12/12] fsck: add ref content check for files backendshejialuo, Jun 27, 2024
  76. [GSoC][PATCH v6 00/11] ref consistency check infra setupshejialuo, Jul 1, 2024
  77. 01/11 fsck: add "fsck_objects_options" to hold objects-related optionsshejialuo, Jul 1, 2024
  78. [GSoC][PATCH v6 02/11] fsck: rename "skiplist" to "oid_skiplist"shejialuo, Jul 1, 2024
  79. [GSoC][PATCH v6 03/11] fsck: add "fsck_refs_options" into "fsck_options"shejialuo, Jul 1, 2024
  80. [GSoC][PATCH v6 04/11] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 1, 2024
  81. [GSoC][PATCH v6 05/11] fsck: add "fsck_refs_options" initialization macrosshejialuo, Jul 1, 2024
  82. [GSoC][PATCH v6 06/11] refs: set up ref consistency check infrastructureshejialuo, Jul 1, 2024
  83. [GSoC][PATCH v6 07/11] builtin/refs: add verify subcommandshejialuo, Jul 1, 2024
  84. [GSoC][PATCH v6 08/11] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 1, 2024
  85. [GSoC][PATCH v6 09/11] files-backend: add unified interface for refs scanningshejialuo, Jul 1, 2024
  86. [GSoC][PATCH v6 10/11] fsck: add ref name check for files backendshejialuo, Jul 1, 2024
  87. [GSoC][PATCH v6 11/11] fsck: add ref content check for files backendshejialuo, Jul 1, 2024
  88. Karthik NayakJul 2, 2024
  89. shejialuoJul 2, 2024
  90. Junio C HamanoJul 2, 2024
  91. [GSoC][PATCH v7 0/9] ref consistency check infra setupshejialuo, Jul 3, 2024
  92. [GSoC][PATCH v7 1/9] fsck: rename "skiplist" to "oid_skiplist"shejialuo, Jul 3, 2024
  93. Justin ToblerJul 5, 2024
  94. shejialuoJul 8, 2024
  95. [GSoC][PATCH v7 2/9] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 3, 2024
  96. Justin ToblerJul 5, 2024
  97. shejialuoJul 8, 2024
  98. [GSoC][PATCH v7 3/9] fsck: add refs-related options and error report functionshejialuo, Jul 3, 2024
  99. [GSoC][PATCH v7 4/9] refs: set up ref consistency check infrastructureshejialuo, Jul 3, 2024
  100. [GSoC][PATCH v7 5/9] builtin/refs: add verify subcommandshejialuo, Jul 3, 2024
  101. [GSoC][PATCH v7 6/9] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 3, 2024
  102. [GSoC][PATCH v7 7/9] files-backend: add unified interface for refs scanningshejialuo, Jul 3, 2024
  103. [GSoC][PATCH v7 8/9] fsck: add ref name check for files backendshejialuo, Jul 3, 2024
  104. [GSoC][PATCH v7 9/9] fsck: add ref content check for files backendshejialuo, Jul 3, 2024
  105. [GSoC][PATCH v8 0/9] ref consistency check infra setupshejialuo, Jul 8, 2024
  106. [GSoC][PATCH v8 1/9] fsck: rename "skiplist" to "oid_skiplist"shejialuo, Jul 8, 2024
  107. [GSoC][PATCH v8 2/9] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 8, 2024
  108. Karthik NayakJul 8, 2024
  109. shejialuoJul 8, 2024
  110. Karthik NayakJul 8, 2024
  111. [GSoC][PATCH v8 3/9] fsck: add refs-related options and error report functionshejialuo, Jul 8, 2024
  112. Karthik NayakJul 8, 2024
  113. shejialuoJul 8, 2024
  114. [GSoC][PATCH v8 4/9] refs: set up ref consistency check infrastructureshejialuo, Jul 8, 2024
  115. [GSoC][PATCH v8 5/9] builtin/refs: add verify subcommandshejialuo, Jul 8, 2024
  116. [GSoC][PATCH v8 6/9] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 8, 2024
  117. [GSoC][PATCH v8 7/9] files-backend: add unified interface for refs scanningshejialuo, Jul 8, 2024
  118. [GSoC][PATCH v8 8/9] fsck: add ref name check for files backendshejialuo, Jul 8, 2024
  119. [GSoC][PATCH v8 9/9] fsck: add ref content check for files backendshejialuo, Jul 8, 2024
  120. [GSoC][PATCH v9 0/9] ref consistency check infra setupshejialuo, Jul 9, 2024
  121. [GSoC][PATCH v9 1/9] fsck: rename "skiplist" to "skip_oids"shejialuo, Jul 9, 2024
  122. [GSoC][PATCH v9 2/9] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 9, 2024
  123. Justin ToblerJul 9, 2024
  124. shejialuoJul 10, 2024
  125. [GSoC][PATCH v9 3/9] fsck: add refs-related options and error report functionshejialuo, Jul 9, 2024
  126. Justin ToblerJul 9, 2024
  127. Eric SunshineJul 9, 2024
  128. shejialuoJul 10, 2024
  129. shejialuoJul 10, 2024
  130. [GSoC][PATCH v9 4/9] refs: set up ref consistency check infrastructureshejialuo, Jul 9, 2024
  131. Justin ToblerJul 9, 2024
  132. shejialuoJul 10, 2024
  133. [GSoC][PATCH v9 5/9] builtin/refs: add verify subcommandshejialuo, Jul 9, 2024
  134. Justin ToblerJul 9, 2024
  135. shejialuoJul 10, 2024
  136. [GSoC][PATCH v9 6/9] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 9, 2024
  137. [GSoC][PATCH v9 7/9] files-backend: add unified interface for refs scanningshejialuo, Jul 9, 2024
  138. [GSoC][PATCH v9 8/9] fsck: add ref name check for files backendshejialuo, Jul 9, 2024
  139. [GSoC][PATCH v9 9/9] fsck: add ref content check for files backendshejialuo, Jul 9, 2024
  140. [GSoC][PATCH v10 00/10] ref consistency check infra setupshejialuo, Jul 10, 2024
  141. [GSoC][PATCH v10 01/10] fsck: rename "skiplist" to "skip_oids"shejialuo, Jul 10, 2024
  142. [GSoC][PATCH v10 02/10] fsck: rename objects-related fsck error functionsshejialuo, Jul 10, 2024
  143. [GSoC][PATCH v10 03/10] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 10, 2024
  144. Junio C HamanoJul 10, 2024
  145. shejialuoJul 11, 2024
  146. [GSoC][PATCH v10 04/10] fsck: add refs-related error report functionshejialuo, Jul 10, 2024
  147. [GSoC][PATCH v10 05/10] refs: set up ref consistency check infrastructureshejialuo, Jul 10, 2024
  148. [GSoC][PATCH v10 06/10] builtin/refs: add verify subcommand and verbose_refs for "fsck_options"shejialuo, Jul 10, 2024
  149. Junio C HamanoJul 10, 2024
  150. shejialuoJul 11, 2024
  151. [GSoC][PATCH v10 07/10] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 10, 2024
  152. [GSoC][PATCH v10 08/10] files-backend: add unified interface for refs scanningshejialuo, Jul 10, 2024
  153. [GSoC][PATCH v10 09/10] fsck: add ref name check for files backendshejialuo, Jul 10, 2024
  154. [GSoC][PATCH v10 10/10] fsck: add ref content check for files backendshejialuo, Jul 10, 2024
  155. [GSoC][PATCH v11 00/10] ref consistency check infra setupshejialuo, Jul 14, 2024
  156. [GSoC][PATCH v11 01/10] fsck: rename "skiplist" to "skip_oids"shejialuo, Jul 14, 2024
  157. [GSoC][PATCH v11 02/10] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 14, 2024
  158. Karthik NayakJul 18, 2024
  159. shejialuoJul 20, 2024
  160. [GSoC][PATCH v11 03/10] fsck: rename objects-related fsck error functionsshejialuo, Jul 14, 2024
  161. [GSoC][PATCH v11 04/10] fsck: add refs-related error report functionshejialuo, Jul 14, 2024
  162. [GSoC][PATCH v11 05/10] refs: set up ref consistency check infrastructureshejialuo, Jul 14, 2024
  163. [GSoC][PATCH v11 06/10] git refs: add verify subcommandshejialuo, Jul 14, 2024
  164. [GSoC][PATCH v11 07/10] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 14, 2024
  165. [GSoC][PATCH v11 08/10] files-backend: add unified interface for refs scanningshejialuo, Jul 14, 2024
  166. [GSoC][PATCH v11 09/10] fsck: add ref name check for files backendshejialuo, Jul 14, 2024
  167. [GSoC][PATCH v11 10/10] fsck: add ref content check for files backendshejialuo, Jul 14, 2024
  168. Karthik NayakJul 18, 2024
  169. Junio C HamanoJul 18, 2024
  170. Karthik NayakJul 19, 2024
  171. shejialuoJul 20, 2024
  172. shejialuoJul 20, 2024
  173. [GSoC][PATCH v12 00/10] ref consistency check infra setupshejialuo, Jul 20, 2024
  174. [GSoC][PATCH v12 01/10] fsck: rename "skiplist" to "skip_oids"shejialuo, Jul 20, 2024
  175. [GSoC][PATCH v12 02/10] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 20, 2024
  176. Karthik NayakJul 23, 2024
  177. [GSoC][PATCH v12 03/10] fsck: rename objects-related fsck error functionsshejialuo, Jul 20, 2024
  178. [GSoC][PATCH v12 04/10] fsck: add refs-related error report functionshejialuo, Jul 20, 2024
  179. [GSoC][PATCH v12 05/10] refs: set up ref consistency check infrastructureshejialuo, Jul 20, 2024
  180. [GSoC][PATCH v12 06/10] git refs: add verify subcommandshejialuo, Jul 20, 2024
  181. [GSoC][PATCH v12 07/10] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 20, 2024
  182. [GSoC][PATCH v12 08/10] files-backend: add unified interface for refs scanningshejialuo, Jul 20, 2024
  183. [GSoC][PATCH v12 09/10] fsck: add ref name check for files backendshejialuo, Jul 20, 2024
  184. [GSoC][PATCH v12 10/10] fsck: add ref content check for files backendshejialuo, Jul 20, 2024
  185. [GSoC][PATCH v13 00/10] ref consistency check infra setupshejialuo, Jul 29, 2024
  186. [GSoC][PATCH v13 01/10] fsck: rename "skiplist" to "skip_oids"shejialuo, Jul 29, 2024
  187. [GSoC][PATCH v13 02/10] fsck: add a unified interface for reporting fsck messagesshejialuo, Jul 29, 2024
  188. Patrick SteinhardtJul 30, 2024
  189. shejialuoJul 30, 2024
  190. [GSoC][PATCH v13 03/10] fsck: rename objects-related fsck error functionsshejialuo, Jul 29, 2024
  191. Patrick SteinhardtJul 30, 2024
  192. shejialuoJul 30, 2024
  193. [GSoC][PATCH v13 04/10] fsck: add refs-related error report functionshejialuo, Jul 29, 2024
  194. Patrick SteinhardtJul 30, 2024
  195. shejialuoJul 30, 2024
  196. [GSoC][PATCH v13 05/10] refs: set up ref consistency check infrastructureshejialuo, Jul 29, 2024
  197. Patrick SteinhardtJul 30, 2024
  198. shejialuoJul 30, 2024
  199. [GSoC][PATCH v13 06/10] git refs: add verify subcommandshejialuo, Jul 29, 2024
  200. Patrick SteinhardtJul 30, 2024
  201. shejialuoJul 30, 2024
  202. Eric SunshineJul 30, 2024
  203. [GSoC][PATCH v13 07/10] builtin/fsck: add `git-refs verify` child processshejialuo, Jul 29, 2024
  204. [GSoC][PATCH v13 08/10] files-backend: add unified interface for refs scanningshejialuo, Jul 29, 2024
  205. Patrick SteinhardtJul 30, 2024
  206. shejialuoJul 30, 2024
  207. [GSoC][PATCH v13 09/10] fsck: add ref name check for files backendshejialuo, Jul 29, 2024
  208. Patrick SteinhardtJul 30, 2024
  209. shejialuoJul 30, 2024
  210. [GSoC][PATCH v13 10/10] fsck: add ref content check for files backendshejialuo, Jul 29, 2024
  211. Patrick SteinhardtJul 30, 2024
  212. shejialuoJul 30, 2024
  213. Junio C HamanoJul 30, 2024
  214. shejialuoJul 31, 2024
  215. Patrick SteinhardtJul 30, 2024
  216. shejialuoJul 30, 2024
  217. [GSoC][PATCH v14 00/11] ref consistency check infra setupshejialuo, Aug 1, 2024
  218. [GSoC][PATCH v14 01/11] fsck: rename "skiplist" to "skip_oids"shejialuo, Aug 1, 2024
  219. [GSoC][PATCH v14 02/11] fsck: make "fsck_error" callback genericshejialuo, Aug 1, 2024
  220. [GSoC][PATCH v14 03/11] fsck: add a unified interface for reporting fsck messagesshejialuo, Aug 1, 2024
  221. Patrick SteinhardtAug 5, 2024
  222. shejialuoAug 5, 2024
  223. [GSoC][PATCH v14 04/11] fsck: add refs report functionshejialuo, Aug 1, 2024
  224. Patrick SteinhardtAug 5, 2024
  225. [GSoC][PATCH v14 05/11] fsck: add refs-related error callbackshejialuo, Aug 1, 2024
  226. Patrick SteinhardtAug 5, 2024
  227. [GSoC][PATCH v14 06/11] fsck: rename objects-related fsck error functionsshejialuo, Aug 1, 2024
  228. Patrick SteinhardtAug 5, 2024
  229. [GSoC][PATCH v14 07/11] refs: set up ref consistency check infrastructureshejialuo, Aug 1, 2024
  230. [GSoC][PATCH v14 08/11] builtin/refs: add verify subcommandshejialuo, Aug 1, 2024
  231. [GSoC][PATCH v14 09/11] builtin/fsck: add `git-refs verify` child processshejialuo, Aug 1, 2024
  232. Patrick SteinhardtAug 5, 2024
  233. shejialuoAug 5, 2024
  234. Junio C HamanoAug 5, 2024
  235. shejialuoAug 5, 2024
  236. Junio C HamanoAug 5, 2024
  237. shejialuoAug 6, 2024
  238. Patrick SteinhardtAug 6, 2024
  239. Junio C HamanoAug 6, 2024
  240. Patrick SteinhardtAug 7, 2024
  241. Patrick SteinhardtAug 6, 2024
  242. [GSoC][PATCH v14 10/11] files-backend: add unified interface for refs scanningshejialuo, Aug 1, 2024
  243. Patrick SteinhardtAug 5, 2024
  244. [GSoC][PATCH v14 11/11] fsck: add ref name check for files backendshejialuo, Aug 1, 2024
  245. Patrick SteinhardtAug 5, 2024
  246. Patrick SteinhardtAug 5, 2024
  247. [GSoC][PATCH v15 0/9] ref consistency check infra setupshejialuo, Aug 5, 2024
  248. [GSoC][PATCH v15 1/9] fsck: rename "skiplist" to "skip_oids"shejialuo, Aug 5, 2024
  249. [GSoC][PATCH v15 2/9] fsck: rename objects-related fsck error functionsshejialuo, Aug 5, 2024
  250. [GSoC][PATCH v15 3/9] fsck: make "fsck_error" callback genericshejialuo, Aug 5, 2024
  251. Karthik NayakAug 7, 2024
  252. [GSoC][PATCH v15 4/9] fsck: add a unified interface for reporting fsck messagesshejialuo, Aug 5, 2024
  253. Karthik NayakAug 7, 2024
  254. [GSoC][PATCH v15 5/9] fsck: add refs report functionshejialuo, Aug 5, 2024
  255. Patrick SteinhardtAug 6, 2024
  256. [GSoC][PATCH v15 6/9] refs: set up ref consistency check infrastructureshejialuo, Aug 5, 2024
  257. [GSoC][PATCH v15 7/9] builtin/refs: add verify subcommandshejialuo, Aug 5, 2024
  258. Patrick SteinhardtAug 6, 2024
  259. Junio C HamanoAug 6, 2024
  260. Patrick SteinhardtAug 7, 2024
  261. shejialuoAug 7, 2024
  262. Karthik NayakAug 8, 2024
  263. Junio C HamanoAug 7, 2024
  264. [GSoC][PATCH v15 8/9] files-backend: add unified interface for refs scanningshejialuo, Aug 5, 2024
  265. Patrick SteinhardtAug 6, 2024
  266. [GSoC][PATCH v15 9/9] fsck: add ref name check for files backendshejialuo, Aug 5, 2024
  267. Patrick SteinhardtAug 6, 2024
  268. Karthik NayakAug 7, 2024
  269. [GSoC][PATCH v16 0/9] ref consistency check infra setupshejialuo, Aug 8, 2024
  270. [GSoC][PATCH v16 1/9] fsck: rename "skiplist" to "skip_oids"shejialuo, Aug 8, 2024
  271. [GSoC][PATCH v16 2/9] fsck: rename objects-related fsck error functionsshejialuo, Aug 8, 2024
  272. [GSoC][PATCH v16 3/9] fsck: make "fsck_error" callback genericshejialuo, Aug 8, 2024
  273. [GSoC][PATCH v16 4/9] fsck: add a unified interface for reporting fsck messagesshejialuo, Aug 8, 2024
  274. [GSoC][PATCH v16 5/9] fsck: add refs report functionshejialuo, Aug 8, 2024
  275. [GSoC][PATCH v16 6/9] refs: set up ref consistency check infrastructureshejialuo, Aug 8, 2024
  276. [GSoC][PATCH v16 7/9] builtin/refs: add verify subcommandshejialuo, Aug 8, 2024
  277. 1/2 refs.c: remove redundant translation markersTeng Long, Oct 4, 2024
  278. shejialuoOct 6, 2024
  279. [GSoC][PATCH v16 8/9] files-backend: add unified interface for refs scanningshejialuo, Aug 8, 2024
  280. [GSoC][PATCH v16 9/9] fsck: add ref name check for files backendshejialuo, Aug 8, 2024
  281. Patrick SteinhardtAug 8, 2024
  282. Junio C HamanoAug 8, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.