|
|
@ -69,8 +69,18 @@ void cgit_print_tree(const char *rev, const char *hex, char *path)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
struct tree *tree;
|
|
|
|
struct tree *tree;
|
|
|
|
unsigned char sha1[20];
|
|
|
|
unsigned char sha1[20];
|
|
|
|
|
|
|
|
struct commit *commit;
|
|
|
|
|
|
|
|
|
|
|
|
curr_rev = xstrdup(rev);
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
if (get_sha1_hex(hex, sha1)) {
|
|
|
|
if (get_sha1_hex(hex, sha1)) {
|
|
|
|
cgit_print_error(fmt("Invalid object id: %s", hex));
|
|
|
|
cgit_print_error(fmt("Invalid object id: %s", hex));
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|