X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=cat-file.c;h=7413feed78f20feb635ad55f098c59a2afc2a54c;hb=d9635e9c539465792b1920437b52fa8792a71650;hp=1a613f3ee5ab4197fe18355ae65f2c9226b348cf;hpb=f2fea68a0fc29c6378748853abb01aed1c462a50;p=git.git diff --git a/cat-file.c b/cat-file.c index 1a613f3e..7413feed 100644 --- a/cat-file.c +++ b/cat-file.c @@ -5,6 +5,8 @@ */ #include "cache.h" #include "exec_cmd.h" +#include "tag.h" +#include "tree.h" static void flush_buffer(const char *buf, unsigned long size) { @@ -100,8 +102,11 @@ int main(int argc, char **argv) int opt; setup_git_directory(); - if (argc != 3 || get_sha1(argv[2], sha1)) + git_config(git_default_config); + if (argc != 3) usage("git-cat-file [-t|-s|-e|-p|] "); + if (get_sha1(argv[2], sha1)) + die("Not a valid object name %s", argv[2]); opt = 0; if ( argv[1][0] == '-' ) { @@ -130,18 +135,17 @@ int main(int argc, char **argv) return !has_sha1_file(sha1); case 'p': - if (get_sha1(argv[2], sha1) || - sha1_object_info(sha1, type, NULL)) + if (sha1_object_info(sha1, type, NULL)) die("Not a valid object name %s", argv[2]); /* custom pretty-print here */ - if (!strcmp(type, "tree")) + if (!strcmp(type, tree_type)) return execl_git_cmd("ls-tree", argv[2], NULL); buf = read_sha1_file(sha1, type, &size); if (!buf) die("Cannot read object %s", argv[2]); - if (!strcmp(type, "tag")) + if (!strcmp(type, tag_type)) return pprint_tag(sha1, buf, size); /* otherwise just spit out the data */