Hi All, this version handles some minor changes: 1. Remove redundant newlines. 2. Fix typo in commit message. At last, I wanna thank every reviewer. As we can see, this series starts from 5.27, it's a very long journey. I have learned a lot. 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 | 125 +++++++++++++++++++++++++++------- fsck.h | 76 ++++++++++++++++----- object-file.c | 9 ++- refs.c | 5 ++ refs.h | 8 +++ refs/debug.c | 11 +++ refs/files-backend.c | 115 ++++++++++++++++++++++++++++++- refs/packed-backend.c | 8 +++ refs/refs-internal.h | 6 ++ refs/reftable-backend.c | 8 +++ t/t0602-reffiles-fsck.sh | 92 +++++++++++++++++++++++++ 16 files changed, 477 insertions(+), 59 deletions(-) create mode 100755 t/t0602-reffiles-fsck.sh Range-diff against v15: 1: 9aeaa3211c = 1: 9aeaa3211c fsck: rename "skiplist" to "skip_oids" 2: 7511340a21 = 2: 7511340a21 fsck: rename objects-related fsck error functions 3: ee971d17f4 = 3: ee971d17f4 fsck: make "fsck_error" callback generic 4: 59ccdab54d ! 4: f80fa00538 fsck: add a unified interface for reporting fsck messages @@ Commit message "fsck_vreport". Instead of using "...", provide "va_list" to allow more flexibility. - Instead of changing "report" prototype to be algin with the + Instead of changing "report" prototype to be align with the "fsck_vreport" function, we leave the "report" prototype unchanged due to the reason that there are nearly 62 references about "report" function. Simply change "report" function to use "fsck_vreport" to 5: b5607ac61c ! 5: 8c0376cfd5 fsck: add refs report function @@ fsck.c: int fsck_objects_error_function(struct fsck_options *o, + const char *message) +{ + struct fsck_ref_report *report = fsck_report; -+ + struct strbuf sb = STRBUF_INIT; + int ret = 0; + @@ fsck.c: int fsck_objects_error_function(struct fsck_options *o, + + strbuf_release(&sb); + return ret; -+ +} + static int fsck_blobs(struct oidset *blobs_found, struct oidset *blobs_done, 6: 5819406b40 = 6: 552fe62ff4 refs: set up ref consistency check infrastructure 7: 6a9c194a05 = 7: 3b357fa89e builtin/refs: add verify subcommand 8: 76406b1303 ! 8: 8d2c7b3aa5 files-backend: add unified interface for refs scanning @@ refs/files-backend.c: static int files_ref_store_remove_on_disk(struct ref_store + if (o->verbose) + fprintf_ln(stderr, _("Checking references consistency")); + return files_fsck_refs_dir(ref_store, o, "refs", fsck_refs_fn); -+ +} + static int files_fsck(struct ref_store *ref_store, 9: ed02380516 = 9: b39533ae56 fsck: add ref name check for files backend -- 2.46.0