commit: add gentle reference lookup method

The lookup_commit_reference_by_name() method uses lookup_commit_reference() without an option to use lookup_commit_reference_gently(). Create a gentle version of the method so it can be used in locations where non-commits may be found but error messages should be silenced. Signed-off-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Derrick Stolee committed Aug 14, 2024 at 10:31 UTC 69020d034b75a7cd198c7351219d07ee6926fe59
2 files changed +9 -1
commit.c
+7 -1
@@ -84,13 +84,19 @@ struct commit *lookup_commit(struct repository *r, const struct object_id *oid)
84 }
85
86 struct commit *lookup_commit_reference_by_name(const char *name)
87 +{
88 + return lookup_commit_reference_by_name_gently(name, 0);
89 +}
90 +
91 +struct commit *lookup_commit_reference_by_name_gently(const char *name,
92 + int quiet)
93 {
94 struct object_id oid;
95 struct commit *commit;
96
97 if (repo_get_oid_committish(the_repository, name, &oid))
98 return NULL;
93 - commit = lookup_commit_reference(the_repository, &oid);
99 + commit = lookup_commit_reference_gently(the_repository, &oid, quiet);
100 if (repo_parse_commit(the_repository, commit))
101 return NULL;
102 return commit;
commit.h
+2
@@ -81,6 +81,8 @@ struct commit *lookup_commit_reference_gently(struct repository *r,
81 const struct object_id *oid,
82 int quiet);
83 struct commit *lookup_commit_reference_by_name(const char *name);
84 +struct commit *lookup_commit_reference_by_name_gently(const char *name,
85 + int quiet);
86
87 /*
88 * Look up object named by "oid", dereference tag as necessary,