Skip to content

Commit 1de6007

Browse files
peffgitster
authored andcommitted
fsck: stop checking commit->tree value
We check in fsck_commit_buffer() that commit->tree isn't NULL, which in turn generally comes from a previous parse by parse_commit(). But this isn't really accomplishing anything. The two things we might care about are: - was there a syntactically valid "tree <oid>" line in the object? But we've just done our own parse in fsck_commit_buffer() to check this. - does it point to a valid tree object? But checking the "tree" pointer here doesn't actually accomplish that; it just shows that lookup_tree() didn't return NULL, which only means that we haven't yet seen that oid as a non-tree in this process. A real connectivity check would exhaustively walk all graph links, and we do that already in a separate function. So this code isn't helping anything. And it makes the fsck code slightly more confusing and rigid (e.g., it requires that any commit structs have already been parsed). Let's drop it. As a bit of history, the presence of this code looks like a leftover from early fsck code (which did rely on parse_commit() to do most of the parsing). The check comes from ff5ebe3 (Port fsck-cache to use parsing functions, 2005-04-18), but we later added an explicit walk in 355885d (add generic, type aware object chain walker, 2008-02-25). Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 228c78f commit 1de6007

File tree

1 file changed

+0
-5
lines changed

1 file changed

+0
-5
lines changed

fsck.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -800,11 +800,6 @@ static int fsck_commit_buffer(struct commit *commit, const char *buffer,
800800
err = fsck_ident(&buffer, &commit->object, options);
801801
if (err)
802802
return err;
803-
if (!get_commit_tree(commit)) {
804-
err = report(options, &commit->object, FSCK_MSG_BAD_TREE, "could not load commit's tree %s", oid_to_hex(&tree_oid));
805-
if (err)
806-
return err;
807-
}
808803
if (memchr(buffer_begin, '\0', size)) {
809804
err = report(options, &commit->object, FSCK_MSG_NUL_IN_COMMIT,
810805
"NUL byte in the commit object body");

0 commit comments

Comments
 (0)