git-commit-vandalism/unpack-file.c
Junio C Hamano 84a9b58c42 sha1_name: warning ambiguous refs.
This makes sure that many commands that take refs on the command
line to honor core.warnambiguousrefs configuration.  Earlier,
the commands affected by this patch did not read the
configuration file.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-03-23 23:41:18 -08:00

38 lines
742 B
C

#include "cache.h"
static char *create_temp_file(unsigned char *sha1)
{
static char path[50];
void *buf;
char type[100];
unsigned long size;
int fd;
buf = read_sha1_file(sha1, type, &size);
if (!buf || strcmp(type, "blob"))
die("unable to read blob object %s", sha1_to_hex(sha1));
strcpy(path, ".merge_file_XXXXXX");
fd = mkstemp(path);
if (fd < 0)
die("unable to create temp-file");
if (write(fd, buf, size) != size)
die("unable to write temp-file");
close(fd);
return path;
}
int main(int argc, char **argv)
{
unsigned char sha1[20];
if (argc != 2 || get_sha1(argv[1], sha1))
usage("git-unpack-file <sha1>");
setup_git_directory();
git_config(git_default_config);
puts(create_temp_file(sha1));
return 0;
}