summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e2b77f0)
raw | patch | inline | side by side (parent: e2b77f0)
author | Sergey Vlasov <vsu@altlinux.ru> | |
Fri, 23 Sep 2005 12:28:38 +0000 (16:28 +0400) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Fri, 23 Sep 2005 21:30:46 +0000 (14:30 -0700) |
If the source repository was packed, and git-local-fetch needed to
fetch a pack file, it spewed a misleading error message about not
being able to find the unpacked object. Fixed by adding the
warn_if_not_exists argument to copy_file(), which controls printing
of error messages in case the source file does not exist.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>
fetch a pack file, it spewed a misleading error message about not
being able to find the unpacked object. Fixed by adding the
warn_if_not_exists argument to copy_file(), which controls printing
of error messages in case the source file does not exist.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>
local-fetch.c | patch | blob | history |
diff --git a/local-fetch.c b/local-fetch.c
index 6216c68a4cc64b90efc66fb6dd26065b1939e91c..0dbed8910bbc3aa570c512eff893a4c603fdb5f7 100644 (file)
--- a/local-fetch.c
+++ b/local-fetch.c
return 0;
}
-static int copy_file(const char *source, const char *dest, const char *hex)
+static int copy_file(const char *source, const char *dest, const char *hex,
+ int warn_if_not_exists)
{
if (use_link) {
if (!link(source, dest)) {
}
/* If we got ENOENT there is no point continuing. */
if (errno == ENOENT) {
- fprintf(stderr, "does not exist %s\n", source);
+ if (warn_if_not_exists)
+ fprintf(stderr, "does not exist %s\n", source);
return -1;
}
}
if (use_symlink) {
struct stat st;
if (stat(source, &st)) {
+ if (!warn_if_not_exists && errno == ENOENT)
+ return -1;
fprintf(stderr, "cannot stat %s: %s\n", source,
strerror(errno));
return -1;
void *map;
ifd = open(source, O_RDONLY);
if (ifd < 0 || fstat(ifd, &st) < 0) {
+ int err = errno;
if (ifd >= 0)
close(ifd);
+ if (!warn_if_not_exists && err == ENOENT)
+ return -1;
fprintf(stderr, "cannot open %s\n", source);
return -1;
}
sprintf(filename, "%s/objects/pack/pack-%s.pack",
path, sha1_to_hex(target->sha1));
copy_file(filename, sha1_pack_name(target->sha1),
- sha1_to_hex(target->sha1));
+ sha1_to_hex(target->sha1), 1);
sprintf(filename, "%s/objects/pack/pack-%s.idx",
path, sha1_to_hex(target->sha1));
copy_file(filename, sha1_pack_index_name(target->sha1),
- sha1_to_hex(target->sha1));
+ sha1_to_hex(target->sha1), 1);
install_packed_git(target);
return 0;
}
filename[object_name_start+1] = hex[1];
filename[object_name_start+2] = '/';
strcpy(filename + object_name_start + 3, hex + 2);
- return copy_file(filename, dest_filename, hex);
+ return copy_file(filename, dest_filename, hex, 0);
}
int fetch(unsigned char *sha1)