Firstly, this patch is not about remembering, but about not setting anything, so I think that the title should be something like: commit, tag: set parsed only if no parsing error Incidentally, the check that you mentioned in PATCH 02 is probably no longer necessary. The tests all pass even with the following diff: diff --git a/commit.c b/commit.c index e12e7998ad..086011d944 100644 --- a/commit.c +++ b/commit.c @@ -359,7 +359,7 @@ struct tree *repo_get_commit_tree(struct repository *r, struct object_id *get_commit_tree_oid(const struct commit *commit) { struct tree *tree = get_commit_tree(commit); - return tree ? &tree->object.oid : NULL; + return &tree->object.oid; }