Following up with the results of my bisect (more discussion below). I'm forced to conclude this may somehow have never worked as I'm expecting (even though I do recall it working well in a long-gone environment), but I'm very much hoping I just did the bisect incorrectly. (It's not a feature I need to use much.) So, is this a bug or is this working as intended for a good reason? Sean Allred <allred.sean@xxxxxxxxx> writes: > Thanks for the replies. I'd like to bump this up again. This has come up > in a new context and I don't see a viable workaround for us that doesn't > involve a rewrite of the process and an excessive amount of new > infrastructure. > > I have a feeling this is somehow a general issue with promisor remotes, > though I don't know enough about how they work to know where to start > investigation. I've got what I believe to be minimal reproduction steps > below. > > [...] > > I believe the following can be used with git-bisect to determine if this > truly ever worked or is a regression: > > setup: > #!/bin/bash > > repo="https://github.com/vermiculus/testibus.git" > repo_dir="~/path/to/repo" > > git clone --no-checkout --depth=1 --no-tags --filter=tree:0 "$repo" "$repo_dir" > git -C "$repo_dir" remote set-url origin unreachable > > bisect script: > git -C "$repo_dir" rev-list --objects --all > > (obviously using the just-built git) > > I'm going to start running this bisect, but I suspect it will take a > while, so I wanted to get this out there. I ended up using a bisect script that looks like this #!/bin/bash make clean NO_GETTEXT=1 make -j8 || exit 125 ./bin-wrappers/git -C "$1" rev-list --objects --all || exit 1 git rev-parse HEAD >> ../good-commits and running git bisect start main 637fc4467e57872008171958eda0428818a7ee03 git bisect run ../bisect-script.sh ~/tmp/testibus/ It took less time than I thought, but unfortunately I was never able to actually find a 'good' commit. I arbitrarily chose "partial-clone: design doc" (Jeff Hostetler, Dec 14 2017) as the first commit to the partial-clone design document (under the assumption that it worked at some point). If potentially lying to git-bisect in this way is especially liable to bust it, I can start the exponentially-more- expensive process of testing every commit along --first-parent, but I suspect this may have never worked as I'm expecting. -- Sean Allred