Merge branch 'sj/ref-contents-check'

"git fsck" learned to issue warnings on "curiously formatted" ref
contents that have always been taken valid but something Git
wouldn't have written itself (e.g., missing terminating end-of-line
after the full object name).

* sj/ref-contents-check:
  ref: add symlink ref content check for files backend
  ref: check whether the target of the symref is a ref
  ref: add basic symref content check for files backend
  ref: add more strict checks for regular refs
  ref: port git-fsck(1) regular refs check for files backend
  ref: support multiple worktrees check for refs
  ref: initialize ref name outside of check functions
  ref: check the full refname instead of basename
  ref: initialize "fsck_ref_report" with zero
This commit is contained in:
Junio C Hamano
2024-12-04 10:14:42 +09:00
11 changed files with 793 additions and 65 deletions

3
refs.h
View File

@@ -550,7 +550,8 @@ int check_refname_format(const char *refname, int flags);
* 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_options *o,
struct worktree *wt);
/*
* Apply the rules from check_refname_format, but mutate the result until it