Re: [PATCH] Skip writing out sha1 files for objects in packed git.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Jun 28, 2005, 03:33 UTC
- Message-ID
- <7vekanyx33.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.58.0506271935260.19755@ppc970.osdl.org>
>>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes:
LT> If we want to expand a packed file and really write the objects to the LT> .git/objects directories, we should just not have that packed file in the LT> .git/objects/pack directory.
What I was aiming for was this:
(1) Introduce an interface to sha1_file.c that lets you say
"use this file as one of the packs, although it is not
under .git/objects/pack"; (2) Introduce another interface to sha1_file.c that lets you
enumerate the index entries for a given pack file. (3) Remove the unpacking logic from unpack-object.c; instead
call the above interfaces to register the pack and
enumerate entries, and call read_sha1_file() followed by
write_sha1_file() with do_expand repeatedly.However, the infrastructure (1) and (2) may end up being a special case only to support unpack-object (and removing the code duplication for unpacking), in which case what you suggest would make more sense.
LT> And if we have a pack-file in .git/objects/ that already has LT> the object, that may not be the _same_ pack-file that we're LT> expanding at all, so if that pack file already has the LT> object, then not writing it out is actually the right thing LT> to do.
This I have to think about a bit.