diff options
| author | Junio C Hamano <gitster@pobox.com> | 2008-03-02 15:11:07 -0800 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2008-03-02 15:11:07 -0800 | 
| commit | eadbcd498a18d60467883aeb6c0726048e7382a2 (patch) | |
| tree | 50e765722a06a56121c6431d47cd319a2594ae71 /tree.c | |
| parent | c42f63671c0f09cba0c8247c4d1d8121f37798fe (diff) | |
| parent | 28f72a0f232dfc71b3be726e7e71d0a6d5f9ebba (diff) | |
| download | git-eadbcd498a18d60467883aeb6c0726048e7382a2.tar.gz | |
Merge branch 'mk/maint-parse-careful'
* mk/maint-parse-careful:
  receive-pack: use strict mode for unpacking objects
  index-pack: introduce checking mode
  unpack-objects: prevent writing of inconsistent objects
  unpack-object: cache for non written objects
  add common fsck error printing function
  builtin-fsck: move common object checking code to fsck.c
  builtin-fsck: reports missing parent commits
  Remove unused object-ref code
  builtin-fsck: move away from object-refs to fsck_walk
  add generic, type aware object chain walker
Conflicts:
	Makefile
	builtin-fsck.c
Diffstat (limited to 'tree.c')
| -rw-r--r-- | tree.c | 48 | 
1 files changed, 0 insertions, 48 deletions
| @@ -202,52 +202,6 @@ struct tree *lookup_tree(const unsigned char *sha1)  	return (struct tree *) obj;  } -/* - * NOTE! Tree refs to external git repositories - * (ie gitlinks) do not count as real references. - * - * You don't have to have those repositories - * available at all, much less have the objects - * accessible from the current repository. - */ -static void track_tree_refs(struct tree *item) -{ -	int n_refs = 0, i; -	struct object_refs *refs; -	struct tree_desc desc; -	struct name_entry entry; - -	/* Count how many entries there are.. */ -	init_tree_desc(&desc, item->buffer, item->size); -	while (tree_entry(&desc, &entry)) { -		if (S_ISGITLINK(entry.mode)) -			continue; -		n_refs++; -	} - -	/* Allocate object refs and walk it again.. */ -	i = 0; -	refs = alloc_object_refs(n_refs); -	init_tree_desc(&desc, item->buffer, item->size); -	while (tree_entry(&desc, &entry)) { -		struct object *obj; - -		if (S_ISGITLINK(entry.mode)) -			continue; -		if (S_ISDIR(entry.mode)) -			obj = &lookup_tree(entry.sha1)->object; -		else if (S_ISREG(entry.mode) || S_ISLNK(entry.mode)) -			obj = &lookup_blob(entry.sha1)->object; -		else { -			warning("in tree %s: entry %s has bad mode %.6o\n", -			     sha1_to_hex(item->object.sha1), entry.path, entry.mode); -			obj = lookup_unknown_object(entry.sha1); -		} -		refs->ref[i++] = obj; -	} -	set_object_refs(&item->object, refs); -} -  int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size)  {  	if (item->object.parsed) @@ -256,8 +210,6 @@ int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size)  	item->buffer = buffer;  	item->size = size; -	if (track_object_refs) -		track_tree_refs(item);  	return 0;  } | 
