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>
Subject: [PATCH v4 0/5] add ref content check for files backend
Date: Sat, 14 Sep 2024 01:14:51 +0800 [thread overview]
Message-ID: <ZuRzCyjQFilGhj8j@ArchLinux> (raw)
In-Reply-To: <Ztb-mgl50cwGVO8A@ArchLinux>
Hi All:
This version handles some minor problems mainly focus at the improving
commit messages, comments and some minor problems.
1. Split [PATCH v3 2/4] into two commits [PATCH v4 2/5] and [PATCH v4
3/5]. [PATCH v4 2/5] integrates "git-fsck(1)"'s check and [PATCH v4 3/5]
tightens rules to check the refs with trailing garbage and refs without
newline.
2. Handle a lot of typo errors in original [PATCH v3 2/4]. And improve
the fsck-msgids documentation.
3. Improve [PATCH v4 4/5]'s commit message to first introduce the
tighten rules to be consistent with the [PATCH v4 3/5].
4. Remove "badSymrefTarget(ERROR)" fsck message. Add three new messages
to be more specific:
1. badReferentFiletype(ERROR): The referent of a symref has a bad file
type.
2. badReferentName(ERROR): The referent name of a symref is invalid.
3. escapeReferent(ERROR): The referent of a symref is outside the
ref directory
5. Handle typos and some minor problems.
Because I add more commits, I provide the "--interdiff" here to make the
reviewer's life easier.
However, because I have not merged the latest ci fixup, so I cannot
verify some jobs in CIs. May need the help from Junio to verify.
Thanks,
Jialuo
shejialuo (5):
ref: initialize "fsck_ref_report" with zero
ref: port git-fsck(1) regular refs check for files backend
ref: add more strict checks for regular refs
ref: add symref content check for files backend
ref: add symlink ref content check for files backend
Documentation/fsck-msgids.txt | 25 +++
fsck.h | 7 +
refs.c | 2 +-
refs/files-backend.c | 202 +++++++++++++++++++-
refs/refs-internal.h | 2 +-
t/t0602-reffiles-fsck.sh | 334 ++++++++++++++++++++++++++++++++++
6 files changed, 560 insertions(+), 12 deletions(-)
Interdiff against v3:
diff --git a/Documentation/fsck-msgids.txt b/Documentation/fsck-msgids.txt
index 9e8e1ac7f0..31626e765b 100644
--- a/Documentation/fsck-msgids.txt
+++ b/Documentation/fsck-msgids.txt
@@ -20,7 +20,7 @@
(ERROR) A commit object has a bad parent sha1.
`badRefContent`::
- (ERROR) A ref has a bad content.
+ (ERROR) A ref has bad content.
`badRefFiletype`::
(ERROR) A ref has a bad file type.
@@ -28,9 +28,11 @@
`badRefName`::
(ERROR) A ref has an invalid format.
-`badSymrefTarget`::
- (ERROR) The symref target points outside the ref directory or
- the name of the symref target is invalid.
+`badReferentFiletype`::
+ (ERROR) The referent of a symref has a bad file type.
+
+`badReferentName`::
+ (ERROR) The referent name of a symref is invalid.
`badTagName`::
(INFO) A tag has an invalid format.
@@ -53,6 +55,9 @@
`emptyName`::
(WARN) A path contains an empty name.
+`escapeReferent`::
+ (ERROR) The referent of a symref is outside the "ref" directory.
+
`extraHeaderEntry`::
(IGNORE) Extra headers found after `tagger`.
@@ -178,8 +183,8 @@
(WARN) Tree contains entries pointing to a null sha1.
`refMissingNewline`::
- (INFO) A ref does not end with newline. This kind of ref may
- be considered ERROR in the future.
+ (INFO) A ref does not end with newline. This will be
+ considered an error in the future.
`symlinkRef`::
(INFO) A symref uses the symbolic link. This kind of symref may
@@ -187,8 +192,8 @@
symlink support.
`trailingRefContent`::
- (INFO) A ref has trailing contents. This kind of ref may be
- considered ERROR in the future.
+ (INFO) A ref has trailing content. This will be
+ considered an error in the future.
`treeNotSorted`::
(ERROR) A tree is not properly sorted.
diff --git a/fsck.h b/fsck.h
index 1c6f750812..b72ee632a4 100644
--- a/fsck.h
+++ b/fsck.h
@@ -34,12 +34,14 @@ enum fsck_msg_type {
FUNC(BAD_REF_CONTENT, ERROR) \
FUNC(BAD_REF_FILETYPE, ERROR) \
FUNC(BAD_REF_NAME, ERROR) \
- FUNC(BAD_SYMREF_TARGET, ERROR) \
+ FUNC(BAD_REFERENT_FILETYPE, ERROR) \
+ FUNC(BAD_REFERENT_NAME, ERROR) \
FUNC(BAD_TIMEZONE, ERROR) \
FUNC(BAD_TREE, ERROR) \
FUNC(BAD_TREE_SHA1, ERROR) \
FUNC(BAD_TYPE, ERROR) \
FUNC(DUPLICATE_ENTRIES, ERROR) \
+ FUNC(ESCAPE_REFERENT, ERROR) \
FUNC(MISSING_AUTHOR, ERROR) \
FUNC(MISSING_COMMITTER, ERROR) \
FUNC(MISSING_EMAIL, ERROR) \
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 2a1b952f0d..c511deb509 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -3449,14 +3449,12 @@ static int files_fsck_symref_target(struct fsck_options *o,
unsigned int symbolic_link)
{
size_t len = referent->len - 1;
- const char *p = NULL;
struct stat st;
int ret = 0;
- if (!skip_prefix(referent->buf, "refs/", &p)) {
-
+ if (!starts_with(referent->buf, "refs/")) {
ret = fsck_report_ref(o, report,
- FSCK_MSG_BAD_SYMREF_TARGET,
+ FSCK_MSG_ESCAPE_REFERENT,
"points to ref outside the refs directory");
goto out;
}
@@ -3473,7 +3471,7 @@ static int files_fsck_symref_target(struct fsck_options *o,
if (check_refname_format(referent->buf, 0)) {
ret = fsck_report_ref(o, report,
- FSCK_MSG_BAD_SYMREF_TARGET,
+ FSCK_MSG_BAD_REFERENT_NAME,
"points to refname with invalid format");
goto out;
}
@@ -3485,22 +3483,24 @@ static int files_fsck_symref_target(struct fsck_options *o,
}
/*
- * Missing target should not be treated as any error worthy event and
- * not even warn. It is a common case that a symbolic ref points to a
- * ref that does not exist yet. If the target ref does not exist, just
- * skip the check for the file type.
+ * Dangling symrefs are common and so we don't report them.
*/
- if (lstat(referent_path->buf, &st))
+ if (lstat(referent_path->buf, &st)) {
+ if (errno != ENOENT) {
+ ret = error_errno(_("unable to stat '%s'"),
+ referent_path->buf);
+ }
goto out;
+ }
/*
- * We cannot distinguish whether "refs/heads/a" is directory or nots by
+ * We cannot distinguish whether "refs/heads/a" is a directory or not by
* using "check_refname_format(referent->buf, 0)". Instead, we need to
* check the file type of the target.
*/
if (S_ISDIR(st.st_mode)) {
ret = fsck_report_ref(o, report,
- FSCK_MSG_BAD_SYMREF_TARGET,
+ FSCK_MSG_BAD_REFERENT_FILETYPE,
"points to the directory");
goto out;
}
@@ -3520,7 +3520,6 @@ static int files_fsck_refs_content(struct ref_store *ref_store,
struct strbuf referent = STRBUF_INIT;
struct strbuf refname = STRBUF_INIT;
struct fsck_ref_report report = {0};
- unsigned int symbolic_link = 0;
const char *trailing = NULL;
unsigned int type = 0;
int failure_errno = 0;
@@ -3533,7 +3532,6 @@ static int files_fsck_refs_content(struct ref_store *ref_store,
if (S_ISLNK(iter->st.st_mode)) {
const char* relative_referent_path;
- symbolic_link = 1;
ret = fsck_report_ref(o, &report,
FSCK_MSG_SYMLINK_REF,
"use deprecated symbolic link for symref");
@@ -3549,21 +3547,20 @@ static int files_fsck_refs_content(struct ref_store *ref_store,
abs_gitdir.buf,
&relative_referent_path)) {
ret = fsck_report_ref(o, &report,
- FSCK_MSG_BAD_SYMREF_TARGET,
+ FSCK_MSG_ESCAPE_REFERENT,
"point to target outside gitdir");
goto cleanup;
}
strbuf_addstr(&referent, relative_referent_path);
ret = files_fsck_symref_target(o, &report,
- &referent, &referent_path,
- symbolic_link);
+ &referent, &referent_path, 1);
goto cleanup;
}
if (strbuf_read_file(&ref_content, iter->path.buf, 0) < 0) {
- ret = error_errno(_("%s/%s: unable to read the ref"),
+ ret = error_errno(_("unable to read ref '%s/%s'"),
refs_check_dir, iter->relative_path);
goto cleanup;
}
@@ -3578,14 +3575,14 @@ static int files_fsck_refs_content(struct ref_store *ref_store,
}
if (!(type & REF_ISSYMREF)) {
- if (*trailing == '\0') {
+ if (!*trailing) {
ret = fsck_report_ref(o, &report,
FSCK_MSG_REF_MISSING_NEWLINE,
"missing newline");
goto cleanup;
}
- if (*trailing != '\n' || (*(trailing + 1) != '\0')) {
+ if (*trailing != '\n' || *(trailing + 1)) {
ret = fsck_report_ref(o, &report,
FSCK_MSG_TRAILING_REF_CONTENT,
"trailing garbage in ref");
@@ -3602,7 +3599,7 @@ static int files_fsck_refs_content(struct ref_store *ref_store,
ret = files_fsck_symref_target(o, &report,
&referent,
&referent_path,
- symbolic_link);
+ 0);
}
cleanup:
diff --git a/t/t0602-reffiles-fsck.sh b/t/t0602-reffiles-fsck.sh
index e735816d5b..7c3579705f 100755
--- a/t/t0602-reffiles-fsck.sh
+++ b/t/t0602-reffiles-fsck.sh
@@ -268,7 +268,7 @@ test_expect_success 'textual symref content should be checked (individual)' '
printf "ref: refs/heads/.branch\n" >$branch_dir_prefix/branch-bad-1 &&
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
- error: refs/heads/branch-bad-1: badSymrefTarget: points to refname with invalid format
+ error: refs/heads/branch-bad-1: badReferentName: points to refname with invalid format
EOF
rm $branch_dir_prefix/branch-bad-1 &&
test_cmp expect err &&
@@ -276,7 +276,7 @@ test_expect_success 'textual symref content should be checked (individual)' '
printf "ref: reflogs/heads/main\n" >$branch_dir_prefix/branch-bad-2 &&
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
- error: refs/heads/branch-bad-2: badSymrefTarget: points to ref outside the refs directory
+ error: refs/heads/branch-bad-2: escapeReferent: points to ref outside the refs directory
EOF
rm $branch_dir_prefix/branch-bad-2 &&
test_cmp expect err &&
@@ -284,7 +284,7 @@ test_expect_success 'textual symref content should be checked (individual)' '
printf "ref: refs/heads/a\n" >$branch_dir_prefix/branch-bad-3 &&
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
- error: refs/heads/branch-bad-3: badSymrefTarget: points to the directory
+ error: refs/heads/branch-bad-3: badReferentFiletype: points to the directory
EOF
rm $branch_dir_prefix/branch-bad-3 &&
test_cmp expect err
@@ -311,9 +311,9 @@ test_expect_success 'textual symref content should be checked (aggregate)' '
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
- error: refs/heads/branch-bad-1: badSymrefTarget: points to refname with invalid format
- error: refs/heads/branch-bad-2: badSymrefTarget: points to ref outside the refs directory
- error: refs/heads/branch-bad-3: badSymrefTarget: points to the directory
+ error: refs/heads/branch-bad-1: badReferentName: points to refname with invalid format
+ error: refs/heads/branch-bad-2: escapeReferent: points to ref outside the refs directory
+ error: refs/heads/branch-bad-3: badReferentFiletype: points to the directory
warning: refs/heads/a/b/branch-complicated: refMissingNewline: missing newline
warning: refs/heads/a/b/branch-complicated: trailingRefContent: trailing garbage in ref
warning: refs/heads/a/b/branch-trailing-1: refMissingNewline: missing newline
@@ -347,7 +347,7 @@ test_expect_success SYMLINKS 'symlink symref content should be checked (individu
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
warning: refs/heads/branch-symbolic-1: symlinkRef: use deprecated symbolic link for symref
- error: refs/heads/branch-symbolic-1: badSymrefTarget: point to target outside gitdir
+ error: refs/heads/branch-symbolic-1: escapeReferent: point to target outside gitdir
EOF
rm $branch_dir_prefix/branch-symbolic-1 &&
test_cmp expect err &&
@@ -356,7 +356,7 @@ test_expect_success SYMLINKS 'symlink symref content should be checked (individu
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
warning: refs/heads/branch-symbolic-2: symlinkRef: use deprecated symbolic link for symref
- error: refs/heads/branch-symbolic-2: badSymrefTarget: points to ref outside the refs directory
+ error: refs/heads/branch-symbolic-2: escapeReferent: points to ref outside the refs directory
EOF
rm $branch_dir_prefix/branch-symbolic-2 &&
test_cmp expect err &&
@@ -365,7 +365,7 @@ test_expect_success SYMLINKS 'symlink symref content should be checked (individu
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
warning: refs/heads/branch-symbolic-3: symlinkRef: use deprecated symbolic link for symref
- error: refs/heads/branch-symbolic-3: badSymrefTarget: points to refname with invalid format
+ error: refs/heads/branch-symbolic-3: badReferentName: points to refname with invalid format
EOF
rm $branch_dir_prefix/branch-symbolic-3 &&
test_cmp expect err &&
@@ -374,7 +374,7 @@ test_expect_success SYMLINKS 'symlink symref content should be checked (individu
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
warning: refs/tags/tag-symbolic-1: symlinkRef: use deprecated symbolic link for symref
- error: refs/tags/tag-symbolic-1: badSymrefTarget: points to refname with invalid format
+ error: refs/tags/tag-symbolic-1: badReferentName: points to refname with invalid format
EOF
rm $tag_dir_prefix/tag-symbolic-1 &&
test_cmp expect err &&
@@ -383,7 +383,7 @@ test_expect_success SYMLINKS 'symlink symref content should be checked (individu
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
warning: refs/tags/tag-symbolic-2: symlinkRef: use deprecated symbolic link for symref
- error: refs/tags/tag-symbolic-2: badSymrefTarget: points to the directory
+ error: refs/tags/tag-symbolic-2: badReferentFiletype: points to the directory
EOF
rm $tag_dir_prefix/tag-symbolic-2 &&
test_cmp expect err
@@ -407,11 +407,11 @@ test_expect_success SYMLINKS 'symlink symref content should be checked (aggregat
test_must_fail git refs verify 2>err &&
cat >expect <<-EOF &&
- error: refs/heads/branch-symbolic-1: badSymrefTarget: point to target outside gitdir
- error: refs/heads/branch-symbolic-2: badSymrefTarget: points to ref outside the refs directory
- error: refs/heads/branch-symbolic-3: badSymrefTarget: points to refname with invalid format
- error: refs/tags/tag-symbolic-1: badSymrefTarget: points to refname with invalid format
- error: refs/tags/tag-symbolic-2: badSymrefTarget: points to the directory
+ error: refs/heads/branch-symbolic-1: escapeReferent: point to target outside gitdir
+ error: refs/heads/branch-symbolic-2: escapeReferent: points to ref outside the refs directory
+ error: refs/heads/branch-symbolic-3: badReferentName: points to refname with invalid format
+ error: refs/tags/tag-symbolic-1: badReferentName: points to refname with invalid format
+ error: refs/tags/tag-symbolic-2: badReferentFiletype: points to the directory
warning: refs/heads/branch-symbolic-1: symlinkRef: use deprecated symbolic link for symref
warning: refs/heads/branch-symbolic-2: symlinkRef: use deprecated symbolic link for symref
warning: refs/heads/branch-symbolic-3: symlinkRef: use deprecated symbolic link for symref
--
2.46.0
next prev parent reply other threads:[~2024-09-13 17:13 UTC|newest]
Thread overview: 209+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 14:18 [RFC] Implement ref content consistency check shejialuo
2024-08-15 10:19 ` karthik nayak
2024-08-15 13:37 ` shejialuo
2024-08-16 9:06 ` Patrick Steinhardt
2024-08-16 16:39 ` Junio C Hamano
2024-08-18 15:00 ` [PATCH v1 0/4] add ref content check for files backend shejialuo
2024-08-18 15:01 ` [PATCH v1 1/4] fsck: introduce "FSCK_REF_REPORT_DEFAULT" macro shejialuo
2024-08-20 16:25 ` Junio C Hamano
2024-08-21 12:49 ` shejialuo
2024-08-18 15:01 ` [PATCH v1 2/4] ref: add regular ref content check for files backend shejialuo
2024-08-20 16:49 ` Junio C Hamano
2024-08-21 14:21 ` shejialuo
2024-08-22 8:46 ` Patrick Steinhardt
2024-08-22 16:13 ` Junio C Hamano
2024-08-22 16:17 ` Junio C Hamano
2024-08-23 7:21 ` Patrick Steinhardt
2024-08-23 11:30 ` shejialuo
2024-08-22 8:48 ` Patrick Steinhardt
2024-08-22 12:06 ` shejialuo
2024-08-18 15:01 ` [PATCH v1 3/4] ref: add symbolic " shejialuo
2024-08-22 8:53 ` Patrick Steinhardt
2024-08-22 12:42 ` shejialuo
2024-08-23 5:36 ` Patrick Steinhardt
2024-08-23 11:37 ` shejialuo
2024-08-18 15:02 ` [PATCH v1 4/4] ref: add symlink ref consistency " shejialuo
2024-08-27 16:04 ` [PATCH v2 0/4] add ref content " shejialuo
2024-08-27 16:07 ` [PATCH v2 1/4] ref: initialize "fsck_ref_report" with zero shejialuo
2024-08-27 17:49 ` Junio C Hamano
2024-08-27 16:07 ` [PATCH v2 2/4] ref: add regular ref content check for files backend shejialuo
2024-08-27 16:19 ` shejialuo
2024-08-27 18:21 ` Junio C Hamano
2024-08-28 12:50 ` Patrick Steinhardt
2024-08-28 16:32 ` Junio C Hamano
2024-08-29 10:19 ` Patrick Steinhardt
2024-08-28 14:31 ` shejialuo
2024-08-28 16:45 ` Junio C Hamano
2024-08-28 12:50 ` Patrick Steinhardt
2024-08-28 14:41 ` shejialuo
2024-08-28 15:30 ` Junio C Hamano
2024-08-27 16:08 ` [PATCH v2 3/4] ref: add symbolic " shejialuo
2024-08-27 19:19 ` Junio C Hamano
2024-08-28 15:26 ` shejialuo
2024-08-28 12:50 ` Patrick Steinhardt
2024-08-28 15:36 ` shejialuo
2024-08-28 15:41 ` Junio C Hamano
2024-08-29 10:11 ` Patrick Steinhardt
2024-08-27 16:08 ` [PATCH v2 4/4] ref: add symlink ref " shejialuo
2024-08-28 18:42 ` [PATCH] SQUASH??? remove unused parameters Junio C Hamano
2024-08-28 21:28 ` [PATCH v2 0/4] add ref content check for files backend Junio C Hamano
2024-08-29 4:02 ` Jeff King
2024-08-29 4:59 ` Junio C Hamano
2024-08-29 7:00 ` Patrick Steinhardt
2024-08-29 15:07 ` Junio C Hamano
2024-08-29 19:48 ` Jeff King
2024-08-29 15:48 ` shejialuo
2024-08-29 16:12 ` Junio C Hamano
2024-08-29 15:00 ` [PATCH 8/6] CodingGuidelines: also mention MAYBE_UNUSED Junio C Hamano
2024-08-29 17:52 ` Jeff King
2024-08-29 18:06 ` Junio C Hamano
2024-08-29 18:18 ` [PATCH v2] " Junio C Hamano
2024-08-29 18:27 ` [PATCH 9/6] git-compat-util: guard definition of MAYBE_UNUSED with __GNUC__ Junio C Hamano
2024-08-29 19:45 ` Jeff King
2024-08-29 20:19 ` Junio C Hamano
2024-08-29 19:40 ` [PATCH v2] CodingGuidelines: also mention MAYBE_UNUSED Jeff King
2024-09-03 12:18 ` [PATCH v3 0/4] add ref content check for files backend shejialuo
2024-09-03 12:20 ` [PATCH v3 1/4] ref: initialize "fsck_ref_report" with zero shejialuo
2024-09-03 12:20 ` [PATCH v3 2/4] ref: add regular ref content check for files backend shejialuo
2024-09-09 15:04 ` Patrick Steinhardt
2024-09-10 7:42 ` shejialuo
2024-09-10 16:07 ` karthik nayak
2024-09-13 10:25 ` shejialuo
2024-09-03 12:20 ` [PATCH v3 3/4] ref: add symref " shejialuo
2024-09-09 15:04 ` Patrick Steinhardt
2024-09-10 8:02 ` shejialuo
2024-09-10 22:19 ` karthik nayak
2024-09-12 4:00 ` shejialuo
2024-09-03 12:21 ` [PATCH v3 4/4] ref: add symlink ref " shejialuo
2024-09-09 15:04 ` Patrick Steinhardt
2024-09-10 8:28 ` shejialuo
2024-09-13 17:14 ` shejialuo [this message]
2024-09-13 17:17 ` [PATCH v4 1/5] ref: initialize "fsck_ref_report" with zero shejialuo
2024-09-18 16:41 ` Junio C Hamano
2024-09-13 17:17 ` [PATCH v4 2/5] ref: port git-fsck(1) regular refs check for files backend shejialuo
2024-09-18 18:59 ` Junio C Hamano
2024-09-22 14:58 ` shejialuo
2024-09-13 17:17 ` [PATCH v4 3/5] ref: add more strict checks for regular refs shejialuo
2024-09-18 19:39 ` Junio C Hamano
2024-09-22 15:06 ` shejialuo
2024-09-22 16:48 ` Junio C Hamano
2024-09-13 17:18 ` [PATCH v4 4/5] ref: add symref content check for files backend shejialuo
2024-09-18 20:19 ` Junio C Hamano
2024-09-22 15:53 ` shejialuo
2024-09-22 16:55 ` Junio C Hamano
2024-09-13 17:18 ` [PATCH v4 5/5] ref: add symlink ref " shejialuo
2024-09-18 23:02 ` Junio C Hamano
2024-09-18 16:49 ` [PATCH v4 0/5] add " Junio C Hamano
2024-09-29 7:13 ` [PATCH v5 0/9] " shejialuo
2024-09-29 7:15 ` [PATCH v5 1/9] ref: initialize "fsck_ref_report" with zero shejialuo
2024-10-08 7:29 ` Karthik Nayak
2024-09-29 7:15 ` [PATCH v5 2/9] builtin/refs: support multiple worktrees check for refs shejialuo
2024-10-07 6:58 ` Patrick Steinhardt
2024-10-07 8:42 ` shejialuo
2024-10-07 9:16 ` Patrick Steinhardt
2024-10-07 12:06 ` shejialuo
2024-09-29 7:15 ` [PATCH v5 3/9] ref: port git-fsck(1) regular refs check for files backend shejialuo
2024-10-07 6:58 ` Patrick Steinhardt
2024-10-07 8:42 ` shejialuo
2024-10-07 9:18 ` Patrick Steinhardt
2024-10-07 12:08 ` shejialuo
2024-10-08 7:43 ` Karthik Nayak
2024-10-08 12:24 ` shejialuo
2024-10-08 17:44 ` Junio C Hamano
2024-10-09 8:05 ` Patrick Steinhardt
2024-10-09 11:59 ` shejialuo
2024-10-10 6:52 ` Patrick Steinhardt
2024-10-10 16:00 ` Junio C Hamano
2024-10-09 11:55 ` shejialuo
2024-09-29 7:16 ` [PATCH v5 4/9] ref: add more strict checks for regular refs shejialuo
2024-10-07 6:58 ` Patrick Steinhardt
2024-10-07 8:44 ` shejialuo
2024-10-07 9:25 ` Patrick Steinhardt
2024-10-07 12:19 ` shejialuo
2024-09-29 7:16 ` [PATCH v5 5/9] ref: add basic symref content check for files backend shejialuo
2024-10-08 7:58 ` Karthik Nayak
2024-10-08 12:18 ` shejialuo
2024-09-29 7:16 ` [PATCH v5 6/9] ref: add escape check for the referent of symref shejialuo
2024-10-07 6:58 ` Patrick Steinhardt
2024-10-07 8:44 ` shejialuo
2024-10-07 9:26 ` Patrick Steinhardt
2024-09-29 7:17 ` [PATCH v5 7/9] ref: enhance escape situation for worktrees shejialuo
2024-10-07 6:58 ` Patrick Steinhardt
2024-10-07 8:45 ` shejialuo
2024-09-29 7:17 ` [PATCH v5 8/9] t0602: add ref content checks " shejialuo
2024-10-07 6:58 ` Patrick Steinhardt
2024-10-07 8:45 ` shejialuo
2024-09-29 7:17 ` [PATCH v5 9/9] ref: add symlink ref content check for files backend shejialuo
2024-10-07 6:58 ` Patrick Steinhardt
2024-10-07 8:45 ` shejialuo
2024-09-30 18:57 ` [PATCH v5 0/9] add " Junio C Hamano
2024-10-01 3:40 ` shejialuo
2024-10-07 12:49 ` shejialuo
2024-10-21 13:32 ` [PATCH v6 " shejialuo
2024-10-21 13:34 ` [PATCH v6 1/9] ref: initialize "fsck_ref_report" with zero shejialuo
2024-10-21 13:34 ` [PATCH v6 2/9] ref: check the full refname instead of basename shejialuo
2024-10-21 15:38 ` karthik nayak
2024-10-22 11:42 ` shejialuo
2024-11-05 7:11 ` Patrick Steinhardt
2024-11-06 12:37 ` shejialuo
2024-10-21 13:34 ` [PATCH v6 3/9] ref: initialize target name outside of check functions shejialuo
2024-10-21 15:49 ` karthik nayak
2024-11-05 7:11 ` Patrick Steinhardt
2024-11-06 12:32 ` shejialuo
2024-11-06 13:14 ` Patrick Steinhardt
2024-10-21 13:34 ` [PATCH v6 4/9] ref: support multiple worktrees check for refs shejialuo
2024-10-21 15:56 ` karthik nayak
2024-10-22 11:44 ` shejialuo
2024-11-05 7:11 ` Patrick Steinhardt
2024-11-05 12:52 ` shejialuo
2024-11-06 6:34 ` Patrick Steinhardt
2024-11-06 12:20 ` shejialuo
2024-10-21 13:34 ` [PATCH v6 5/9] ref: port git-fsck(1) regular refs check for files backend shejialuo
2024-11-05 7:11 ` Patrick Steinhardt
2024-10-21 13:34 ` [PATCH v6 6/9] ref: add more strict checks for regular refs shejialuo
2024-10-21 13:35 ` [PATCH v6 7/9] ref: add basic symref content check for files backend shejialuo
2024-10-21 13:35 ` [PATCH v6 8/9] ref: check whether the target of the symref is a ref shejialuo
2024-10-21 13:35 ` [PATCH v6 9/9] ref: add symlink ref content check for files backend shejialuo
2024-10-21 16:09 ` [PATCH v6 0/9] add " Taylor Blau
2024-10-22 11:41 ` shejialuo
2024-10-21 16:18 ` Taylor Blau
2024-11-10 12:07 ` [PATCH v7 " shejialuo
2024-11-10 12:09 ` [PATCH v7 1/9] ref: initialize "fsck_ref_report" with zero shejialuo
2024-11-10 12:09 ` [PATCH v7 2/9] ref: check the full refname instead of basename shejialuo
2024-11-10 12:09 ` [PATCH v7 3/9] ref: initialize ref name outside of check functions shejialuo
2024-11-10 12:09 ` [PATCH v7 4/9] ref: support multiple worktrees check for refs shejialuo
2024-11-10 12:09 ` [PATCH v7 5/9] ref: port git-fsck(1) regular refs check for files backend shejialuo
2024-11-13 7:36 ` Patrick Steinhardt
2024-11-14 12:09 ` shejialuo
2024-11-10 12:10 ` [PATCH v7 6/9] ref: add more strict checks for regular refs shejialuo
2024-11-10 12:10 ` [PATCH v7 7/9] ref: add basic symref content check for files backend shejialuo
2024-11-10 12:10 ` [PATCH v7 8/9] ref: check whether the target of the symref is a ref shejialuo
2024-11-10 12:10 ` [PATCH v7 9/9] ref: add symlink ref content check for files backend shejialuo
2024-11-13 7:36 ` Patrick Steinhardt
2024-11-14 12:18 ` shejialuo
2024-11-13 7:36 ` [PATCH v7 0/9] add " Patrick Steinhardt
2024-11-14 16:51 ` [PATCH v8 " shejialuo
2024-11-14 16:53 ` [PATCH v8 1/9] ref: initialize "fsck_ref_report" with zero shejialuo
2024-11-14 16:54 ` [PATCH v8 2/9] ref: check the full refname instead of basename shejialuo
2024-11-14 16:54 ` [PATCH v8 3/9] ref: initialize ref name outside of check functions shejialuo
2024-11-14 16:54 ` [PATCH v8 4/9] ref: support multiple worktrees check for refs shejialuo
2024-11-14 16:54 ` [PATCH v8 5/9] ref: port git-fsck(1) regular refs check for files backend shejialuo
2024-11-15 7:11 ` Patrick Steinhardt
2024-11-15 11:08 ` shejialuo
2024-11-14 16:54 ` [PATCH v8 6/9] ref: add more strict checks for regular refs shejialuo
2024-11-14 16:54 ` [PATCH v8 7/9] ref: add basic symref content check for files backend shejialuo
2024-11-14 16:54 ` [PATCH v8 8/9] ref: check whether the target of the symref is a ref shejialuo
2024-11-14 16:55 ` [PATCH v8 9/9] ref: add symlink ref content check for files backend shejialuo
2024-11-15 11:10 ` [PATCH v8 0/9] add " shejialuo
2024-11-20 11:47 ` [PATCH v9 " shejialuo
2024-11-20 11:51 ` [PATCH v9 1/9] ref: initialize "fsck_ref_report" with zero shejialuo
2024-11-20 11:51 ` [PATCH v9 2/9] ref: check the full refname instead of basename shejialuo
2024-11-20 11:51 ` [PATCH v9 3/9] ref: initialize ref name outside of check functions shejialuo
2024-11-20 11:51 ` [PATCH v9 4/9] ref: support multiple worktrees check for refs shejialuo
2024-11-20 11:51 ` [PATCH v9 5/9] ref: port git-fsck(1) regular refs check for files backend shejialuo
2024-11-20 11:51 ` [PATCH v9 6/9] ref: add more strict checks for regular refs shejialuo
2024-11-20 11:52 ` [PATCH v9 7/9] ref: add basic symref content check for files backend shejialuo
2024-11-20 11:52 ` [PATCH v9 8/9] ref: check whether the target of the symref is a ref shejialuo
2024-11-20 11:52 ` [PATCH v9 9/9] ref: add symlink ref content check for files backend shejialuo
2024-11-20 14:26 ` [PATCH v9 0/9] add " Patrick Steinhardt
2024-11-20 23:21 ` 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=ZuRzCyjQFilGhj8j@ArchLinux \
--to=shejialuo@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
--cc=ps@pks.im \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.