Browse Source
When garbage collecting, we decide to reuse some bitmaps in older history from the previous pack to save time. The remainder of commit selection only involves commits not covered by those bitmaps. Currently we carry that out in two ways: 1. by building a bitmap representing the already-covered commits, for easy containment checks and AND-NOT-ing against 2. by marking the reused bitmap commits as uninteresting in the RevWalk that finds new commits The mechanism in (2) is less efficient than (1): rw.next() will walk back from reused bitmap commits to check whether the commit it is about to emit is an ancestor of them, when using the bitmap from (1) would let us perform the same check with a single contains() call. Add a RevFilter teaching the RevWalk to perform that same check directly using the bitmap from (1). The next time the RevWalk is used, a different RevFilter is installed so this does not break that. A later commit will drop the markUninteresting calls. No functional change intended except a possible speedup. Change-Id: Ic375210fa69330948be488bf9dbbe4cb0d069ae6stable-4.2
Jonathan Nieder
9 years ago
1 changed files with 42 additions and 0 deletions
Loading…
Reference in new issue