- commit2 = lookup_commit_reference(old_rev_sha1);
- if (!commit2 || parse_commit(commit2)) {
- cgit_print_error("Bad commit: %s", sha1_to_hex(old_rev_sha1));
+ } else if (commit->parents && commit->parents->item) {
+ oidcpy(old_rev_oid, &commit->parents->item->object.oid);
+ } else {
+ oidclr(old_rev_oid, the_repository->hash_algo);
+ }
+
+ if (!is_null_oid(old_rev_oid)) {
+ commit2 = lookup_commit_reference(the_repository, old_rev_oid);
+ if (!commit2 || repo_parse_commit(the_repository, commit2)) {
+ cgit_print_error_page(404, "Not found",
+ "Bad commit: %s", oid_to_hex(old_rev_oid));