On Tue, Jul 17, 2018 at 9:41 PM Jeff King <p...@peff.net> wrote:
> I slept on this to see if I could brainstorm any other ways.
>
> ..
>
> Sort of an aside to the patch under discussion, but I think it may make
> sense for prune_shallow() to take a callback function for determining
> whether a commit is reachable.
>
> I have an old patch that teaches git-prune to lazily do the reachability
> check, since in many cases "git repack" will have just packed all of the
> loose objects. But it just occurred to me that this patch is totally
> broken with respect to prune_shallow(), because it would not set the
> SEEN flag (I've literally been running with it for years, which goes to
> show how often I use the shallow feature).
>
> And if we were to have repack do a prune_shallow(), it may want to use a
> different method than traversing and marking each object SEEN.

All of this sounds good. The only thing I'd like to do a bit
differently is to pass the reachable commits in prune_shallow() as a
commit-slab instead of taking a callback function. I'll refactor this
code, move prune_shallow() to a separate command prune-shallow and do
the locking thing.

Johannes I could take over this bug too (since I introduced the
shallow pruning and missed this part) if you are busy, but if you want
it to be done fast, I can't help. I still have a list of things to go
through.
-- 
Duy

Reply via email to