aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Nieder <jrn@google.com>2015-11-03 11:24:02 -0800
committerJonathan Nieder <jrn@google.com>2015-11-05 12:27:28 -0800
commit2a2c2f3373f0a3e76546e7c44ec3afa96d5e6e6f (patch)
treeef71246d23db260cc57bb74564fdfc3c71229ae4
parentb28091e45014bdadc641713da6d5949f0131545e (diff)
downloadjgit-2a2c2f3373f0a3e76546e7c44ec3afa96d5e6e6f.tar.gz
jgit-2a2c2f3373f0a3e76546e7c44ec3afa96d5e6e6f.zip
Use 'reused' bitmap to filter walk during bitmap selection
When building fullBitmap in order to determine which ancestor chain to add this commit to, we were excluding the ancestors of reusedCommits using markUninteresting. This use of markUninteresting is a bit wasteful because we already have a bitmap indicating exactly which commits should be excluded (which can save some walking). Use it. A separate commit will remove the now-redundant markUninteresting call. No behavior change intended (except for performance improvement). Change-Id: I1112641852d72aa05c9a8bd08a552c70342ccedb
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
index f14e8cc5d2..4df54942a7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java
@@ -265,8 +265,8 @@ class PackWriterBitmapPreparer {
for (AnyObjectId objectId : selectionHelper.reusedCommits) {
rw.markUninteresting(rw.parseCommit(objectId));
}
- rw.setRevFilter(
- PackWriterBitmapWalker.newRevFilter(null, fullBitmap));
+ rw.setRevFilter(PackWriterBitmapWalker.newRevFilter(
+ selectionHelper.reusedCommitsBitmap, fullBitmap));
while (rw.next() != null) {
// The RevFilter adds the reachable commits from this
@@ -464,7 +464,7 @@ class PackWriterBitmapPreparer {
}
return new CommitSelectionHelper(peeledWant, commits, pos,
- orderedTipCommitBitmaps, reuseCommits);
+ orderedTipCommitBitmaps, reuse, reuseCommits);
}
/*-
@@ -565,6 +565,8 @@ class PackWriterBitmapPreparer {
private static final class CommitSelectionHelper implements Iterable<RevCommit> {
final Set<? extends ObjectId> peeledWants;
final List<BitmapBuilderEntry> tipCommitBitmaps;
+
+ final BitmapBuilder reusedCommitsBitmap;
final Iterable<BitmapCommit> reusedCommits;
final RevCommit[] commitsByOldest;
final int commitStartPos;
@@ -572,11 +574,13 @@ class PackWriterBitmapPreparer {
CommitSelectionHelper(Set<? extends ObjectId> peeledWant,
RevCommit[] commitsByOldest, int commitStartPos,
List<BitmapBuilderEntry> bitmapEntries,
+ BitmapBuilder reusedCommitsBitmap,
Iterable<BitmapCommit> reuse) {
this.peeledWants = peeledWant;
this.commitsByOldest = commitsByOldest;
this.commitStartPos = commitStartPos;
this.tipCommitBitmaps = bitmapEntries;
+ this.reusedCommitsBitmap = reusedCommitsBitmap;
this.reusedCommits = reuse;
}