diff options
author | Thomas Rast <trast@inf.ethz.ch> | 2013-05-30 22:00:22 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-06-03 12:51:53 -0700 |
commit | dbea72a8c05d12c7dfd6a35376e62b21d5a655b5 (patch) | |
tree | 92298d4eaefe742337c18158d8eebe4b8f4e588e | |
parent | trivial: Add missing period in documentation (diff) | |
download | tgif-dbea72a8c05d12c7dfd6a35376e62b21d5a655b5.tar.xz |
sha1_file: silence sha1_loose_object_info
sha1_object_info() returns -1 (OBJ_BAD) if it cannot find the object
for some reason, which suggests that it wants the _caller_ to report
this error. However, part of its work happens in
sha1_loose_object_info, which _does_ report errors itself. This is
doubly strange because:
* packed_object_info(), which is the other half of the duo, does _not_
report this.
* In the event that an object is packed and pruned while
sha1_object_info_extended() goes looking for it, we would
erroneously show the error -- even though the code of the latter
function purports to handle this case gracefully.
* A caller might invoke sha1_object_info() to find the type of an
object even if that object is not known to exist.
Silence this error. The others remain untouched as a corrupt object
is a much more grave error than it merely being absent.
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | sha1_file.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sha1_file.c b/sha1_file.c index 40b23297b2..d804e25454 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -2140,7 +2140,7 @@ static int sha1_loose_object_info(const unsigned char *sha1, unsigned long *size map = map_sha1_file(sha1, &mapsize); if (!map) - return error("unable to find %s", sha1_to_hex(sha1)); + return -1; if (unpack_sha1_header(&stream, map, mapsize, hdr, sizeof(hdr)) < 0) status = error("unable to unpack %s header", sha1_to_hex(sha1)); |