Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
object: call "check_sha1_signature" with the replacement sha1
author
Christian Couder
<chriscool@tuxfamily.org>
Fri, 23 Jan 2009 09:07:10 +0000
(10:07 +0100)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 1 Jun 2009 00:02:59 +0000
(17:02 -0700)
Otherwise we get a "sha1 mismatch" error for replaced objects.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
object.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (from parent 1:
f5552ae
)
diff --git
a/object.c
b/object.c
index a6ef439192c1083e367f0a86cb10d93564fc9481..fe8eaaf19f71b48d9acba83594d918fc4875f5c4 100644
(file)
--- a/
object.c
+++ b/
object.c
@@
-188,17
+188,18
@@
struct object *parse_object(const unsigned char *sha1)
unsigned long size;
enum object_type type;
int eaten;
unsigned long size;
enum object_type type;
int eaten;
- void *buffer = read_sha1_file(sha1, &type, &size);
+ const unsigned char *repl;
+ void *buffer = read_sha1_file_repl(sha1, &type, &size, &repl);
if (buffer) {
struct object *obj;
if (buffer) {
struct object *obj;
- if (check_sha1_signature(
sha1
, buffer, size, typename(type)) < 0) {
+ if (check_sha1_signature(
repl
, buffer, size, typename(type)) < 0) {
free(buffer);
free(buffer);
- error("sha1 mismatch %s\n", sha1_to_hex(
sha1
));
+ error("sha1 mismatch %s\n", sha1_to_hex(
repl
));
return NULL;
}
return NULL;
}
- obj = parse_object_buffer(
sha1
, type, size, buffer, &eaten);
+ obj = parse_object_buffer(
repl
, type, size, buffer, &eaten);
if (!eaten)
free(buffer);
return obj;
if (!eaten)
free(buffer);
return obj;