Kirill Smelkov <kirr@xxxxxxxxxx> writes: > ( Junio, please pick up the patch provided in the end ) > > On Tue, Jun 12, 2018 at 06:54:17PM +0000, Kirill Smelkov wrote: >> On Tue, Jun 12, 2018 at 05:48:49AM -0400, Jeff King wrote: >> > On Mon, Jun 11, 2018 at 09:43:02AM +0000, Kirill Smelkov wrote: > [...] > >> > > I'm not sure, but I would say that `fetch-pack --all` from an empty >> > > repository should not fail and should just give empty output as fetch >> > > does. >> > >> > Yeah, that seems reasonable to me. The die() that catches this dates >> > back to 2005-era, and we later taught the "fetch" porcelain to handle >> > this. I don't _think_ anybody would be upset that the plumbing learned >> > to treat this as a noop. It's probably a one-liner change in >> > fetch_pack() to return early instead of dying. I actually have a slight preference to the current "attempting to fetch from a total emptiness is so rare that it is worth grabbing attention of whoever does so" behaviour, to be honest. Oh, wait, is this specific to "fetch-pack" and the behaviour of end-user-facing "git fetch" is kept same as before? If then, I'd be somewhat sympathetic to the cause---it would be more convenient for the calling Porcelain script if this turned into a silent noop (even though it would probably make it harder to diagnose when such a Porcelain is set up incorrectly e.g. pointing at an empty repository that is not the one the Porcelain writer intended to fetch from). > However with transport.c being there too, since I'm no longer using > `fetch-pack --all`, now it is best for me to not delve into this story > and just stop with attached patch. If we do not plan to change the behaviour later ourselves, I do not think it makes sense, nor it is fair to those future developers who inherit this project, to declare that the established behaviour is wrong with an 'expect-failure' test like this, to be honest. > +test_expect_failure 'test --all wrt empty.git' ' > + git init --bare empty.git && > + ( > + cd client && > + git fetch-pack --all ../empty.git > + ) > +'