summaryrefslogtreecommitdiff
path: root/reachable.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2019-02-13 23:38:21 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-02-14 15:25:33 -0800
commitc2bf473d0d60f44a22a724871ada7981e51606f9 (patch)
treef2db168a970bec0559a13545af1b71c44d3650fd /reachable.c
parentprune: use bitmaps for reachability traversal (diff)
downloadtgif-c2bf473d0d60f44a22a724871ada7981e51606f9.tar.xz
prune: check SEEN flag for reachability
The git-prune command checks reachability by doing a traversal, and then checking whether a given object exists in the global object hash. This can yield false positives if any other part of the code had to create an object struct for some reason. It's not clear whether this is even possible, but it's more robust to rely on something a little more concrete: the SEEN flag set by our traversal. Note that there is a slight possibility of regression here, as we're relying on mark_reachable_objects() to consistently set the flag. However, it has always done so, and we're already relying on that fact in prune_shallow(), which is called as part of git-prune. So this is making these two parts of the prune operation more consistent. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reachable.c')
0 files changed, 0 insertions, 0 deletions