On Wed, Jul 31, 2019 at 12:28:07AM -0400, Jeff King wrote: > On Mon, Jul 29, 2019 at 02:50:56PM +0200, Ævar Arnfjörð Bjarmason wrote: > > > > Instead, it may make sense to turn the --write-bitmap-index option of > > > pack-objects into a tri-state: true/false/auto. Then pack-objects would > > > know that we are in best-effort mode, and would avoid warning in that > > > case. That would also let git-repack express its intentions better to > > > git-pack-objects, so we could replace 7328482253, and keep more of the > > > logic in pack-objects, which is ultimately what has to make the decision > > > about whether it can generate bitmaps. > > > > Sounds like pentastate to me :) (penta = 5, had to look it up). I.e. in > > most cases of "auto" we pick a true/false at the outset, whereas this is > > true/true-but-dont-care-much/false/false-but-dont-care-much with "auto" > > picking the "-but-dont-care-much" versions of a "soft" true/false. > > I don't think we care about false-but-dont-care-much. Pack-objects just > needs to know whether the bitmaps are the user's expressed intention, or > just something that it should do if it's convenient. > > I'll see if I can work up a patch to demonstrate. This actually turned out pretty well, I think. I wish I had thought of it when were initially looking at the .keep stuff. :) It was not too hard to clean that up in the third patch, though. [1/3]: t7700: clean up .keep file in bitmap-writing test [2/3]: repack: silence warnings when auto-enabled bitmaps cannot be built [3/3]: repack: simplify handling of auto-bitmaps and .keep files builtin/pack-objects.c | 21 ++++++++++++++++----- builtin/repack.c | 24 +++++++----------------- t/t7700-repack.sh | 15 ++++++++++++++- 3 files changed, 37 insertions(+), 23 deletions(-)