From: Jeff King Date: Tue, 24 Aug 2010 17:46:22 GMT Subject: Re: [PATCH v2 3/3] {fetch,upload}-pack: allow --depth=0 for infinite depth Message-ID: <20100824174622.GA31283@sigill.intra.peff.net> In-Reply-To: <7vvd6zx63h.fsf@alter.siamese.dyndns.org> On Tue, Aug 24, 2010 at 10:39:46AM -0700, Junio C Hamano wrote: > Jeff King writes: > > > On Mon, Aug 23, 2010 at 10:08:24PM +1000, Nguyễn Thái Ngọc Duy wrote: > > > >> Users can do --depth=2147483648 for infinite depth now. It just looks > >> ugly. So make "0" special (i.e. infinite depth) at plumbing/protocol > >> level. > > > > What happens if I connect to an older server? Shouldn't "I understand > > depth=0 is infinite" be a server capability, and we hack around it by > > sending depth=2^32-1 when we have a modern client but an older server? > > Good point. Do we also need to find out how wide an int is on the other > end in that case? I doubt it. We can probably assume that the remote can handle a signed 32-bit depth (so really, my example should have been 2^31-1). If they can't, then it would probably be at best an unsigned 16-bit int, in which case we could only handle a depth of 65535 commits. There are way more than that in common repositories, so --depth with such an implementation would be pretty broken already. -Peff