+ struct commit *commit;
+
+ curr_rev = xstrdup(rev);
+ get_sha1(rev, sha1);
+ commit = lookup_commit_reference(sha1);
+ if (!commit || parse_commit(commit)) {
+ cgit_print_error(fmt("Invalid head: %s", rev));
+ return;
+ }
+ if (!hex)
+ hex = sha1_to_hex(commit->tree->object.sha1);