]> git.ipfire.org Git - thirdparty/git.git/blobdiff - revision.c
revision: ensure MERGE_HEAD is a ref in prepare_show_merge
[thirdparty/git.git] / revision.c
index 2424c9bd674e534909df89e25c21b5eb119fda05..df775f74d02c4d6c5b63156f3a8010c486d4e027 100644 (file)
@@ -1973,8 +1973,12 @@ static void prepare_show_merge(struct rev_info *revs)
        if (repo_get_oid(the_repository, "HEAD", &oid))
                die("--merge without HEAD?");
        head = lookup_commit_or_die(&oid, "HEAD");
-       if (repo_get_oid(the_repository, "MERGE_HEAD", &oid))
+       if (read_ref_full("MERGE_HEAD",
+                       RESOLVE_REF_READING | RESOLVE_REF_NO_RECURSE,
+                       &oid, NULL))
                die("--merge without MERGE_HEAD?");
+       if (is_null_oid(&oid))
+               die(_("MERGE_HEAD exists but is a symbolic ref"));
        other = lookup_commit_or_die(&oid, "MERGE_HEAD");
        add_pending_object(revs, &head->object, "HEAD");
        add_pending_object(revs, &other->object, "MERGE_HEAD");