[PATCH] Remove "delta" object representation.
Packed delta files created by git-pack-objects seems to be the way to go, and existing "delta" object handling code has exposed the object representation details to too many places. Remove it while we refactor code to come up with a proper interface in sha1_file.c. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
ee85cbc688
commit
c4584ae3fd
24
object.c
24
object.c
@ -4,7 +4,6 @@
|
||||
#include "commit.h"
|
||||
#include "cache.h"
|
||||
#include "tag.h"
|
||||
#include "delta.h"
|
||||
|
||||
struct object **objs;
|
||||
int nr_objs;
|
||||
@ -116,25 +115,14 @@ struct object *lookup_object_type(const unsigned char *sha1, const char *type)
|
||||
|
||||
struct object *parse_object(const unsigned char *sha1)
|
||||
{
|
||||
unsigned long mapsize;
|
||||
void *map = map_sha1_file(sha1, &mapsize);
|
||||
if (map) {
|
||||
int is_delta;
|
||||
unsigned long size;
|
||||
char type[20];
|
||||
void *buffer = read_sha1_file(sha1, type, &size);
|
||||
if (buffer) {
|
||||
struct object *obj;
|
||||
char type[100];
|
||||
unsigned long size;
|
||||
void *buffer = unpack_sha1_file(map, mapsize, type, &size);
|
||||
munmap(map, mapsize);
|
||||
if (!buffer)
|
||||
return NULL;
|
||||
is_delta = !strcmp(type, "delta");
|
||||
if (!is_delta && check_sha1_signature(sha1, buffer, size, type) < 0)
|
||||
if (check_sha1_signature(sha1, buffer, size, type) < 0)
|
||||
printf("sha1 mismatch %s\n", sha1_to_hex(sha1));
|
||||
if (is_delta) {
|
||||
struct delta *delta = lookup_delta(sha1);
|
||||
parse_delta_buffer(delta, buffer, size);
|
||||
obj = (struct object *) delta;
|
||||
} else if (!strcmp(type, "blob")) {
|
||||
if (!strcmp(type, "blob")) {
|
||||
struct blob *blob = lookup_blob(sha1);
|
||||
parse_blob_buffer(blob, buffer, size);
|
||||
obj = &blob->object;
|
||||
|
Reference in New Issue
Block a user