From: Junio C Hamano Date: Sun, 29 Oct 2006 08:05:37 GMT Subject: Re: [PATCH] send-pack --keep: do not explode into loose objects on the receiving end. Message-ID: <7vslh74kdq.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <20061029075638.GB3847@spearce.org> Shawn Pearce writes: > I was thinking of just reading the pack header in receive-pack, > checking the object count, and if its over a configured threshold > call index-pack rather than unpack-objects. Unfortunately I just > realized that if we read the pack header to make that decision then > its gone and the child process won't have it. :-( If you want to do that, that is certainly possible. You can read the first block in the parent (without discarding), make the decision and then fork()+exec() either unpack-objects or index-pack and feed it from the parent. The parent first feeds the initial block it read to make that decision, and then becomes a cat that reads from send-pack and writes to the child process that is either unpack-objects or index-pack.