*/
#include "cache.h"
#include "exec_cmd.h"
+#include "tag.h"
+#include "tree.h"
static void flush_buffer(const char *buf, unsigned long size)
{
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|<type>] <sha1>");
+ if (get_sha1(argv[2], sha1))
+ die("Not a valid object name %s", argv[2]);
opt = 0;
if ( argv[1][0] == '-' ) {
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 */