aboutsummaryrefslogtreecommitdiffstats
path: root/submodule.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-03-11 14:12:30 -0700
committerJunio C Hamano <gitster@pobox.com>2024-03-11 14:12:30 -0700
commit7745f92507517c4e60dc2a7faad40eee49ee670b (patch)
treef9eb30d1767f40a69db6b874f50bbdc8953d745d /submodule.c
parente09f1254c54329773904fe25d7c545a1fb4fa920 (diff)
parent25fd20eb44cfcbb0652595de2144f0e077a957ec (diff)
downloadgit-7745f92507517c4e60dc2a7faad40eee49ee670b.tar.gz
Merge branch 'js/merge-base-with-missing-commit'
Make sure failure return from merge_bases_many() is properly caught. * js/merge-base-with-missing-commit: merge-ort/merge-recursive: do report errors in `merge_submodule()` merge-recursive: prepare for `merge_submodule()` to report errors commit-reach(repo_get_merge_bases_many_dirty): pass on errors commit-reach(repo_get_merge_bases_many): pass on "missing commits" errors commit-reach(get_octopus_merge_bases): pass on "missing commits" errors commit-reach(repo_get_merge_bases): pass on "missing commits" errors commit-reach(get_merge_bases_many_0): pass on "missing commits" errors commit-reach(merge_bases_many): pass on "missing commits" errors commit-reach(paint_down_to_common): start reporting errors commit-reach(paint_down_to_common): prepare for handling shallow commits commit-reach(repo_in_merge_bases_many): report missing commits commit-reach(repo_in_merge_bases_many): optionally expect missing commits commit-reach(paint_down_to_common): plug two memory leaks
Diffstat (limited to 'submodule.c')
-rw-r--r--submodule.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/submodule.c b/submodule.c
index 40f13a3685..f0ddb31e8f 100644
--- a/submodule.c
+++ b/submodule.c
@@ -592,7 +592,12 @@ static void show_submodule_header(struct diff_options *o,
(!is_null_oid(two) && !*right))
message = "(commits not present)";
- *merge_bases = repo_get_merge_bases(sub, *left, *right);
+ *merge_bases = NULL;
+ if (repo_get_merge_bases(sub, *left, *right, merge_bases) < 0) {
+ message = "(corrupt repository)";
+ goto output_header;
+ }
+
if (*merge_bases) {
if ((*merge_bases)->item == *left)
fast_forward = 1;