Browse Source

Merge "Decrease indentation in setupTipCommitBitmaps"

stable-4.2
Jonathan Nieder 9 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
2e8b8e83e2
  1. 50
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java

50
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapPreparer.java

@ -339,18 +339,19 @@ class PackWriterBitmapPreparer {
if ((entry.getFlags() & FLAG_REUSE) != FLAG_REUSE) { if ((entry.getFlags() & FLAG_REUSE) != FLAG_REUSE) {
continue; continue;
} }
RevObject ro = rw.peel(rw.parseAny(entry)); RevObject ro = rw.peel(rw.parseAny(entry));
if (ro instanceof RevCommit) { if (!(ro instanceof RevCommit)) {
RevCommit rc = (RevCommit) ro; continue;
reuseCommits.add(new BitmapCommit(rc, false, entry.getFlags()));
rw.markUninteresting(rc);
// PackBitmapIndexRemapper.ofObjectType() ties the underlying
// bitmap in the old pack into the new bitmap builder.
bitmapRemapper.ofObjectType(bitmapRemapper.getBitmap(rc),
Constants.OBJ_COMMIT).trim();
reuse.add(rc, Constants.OBJ_COMMIT);
} }
RevCommit rc = (RevCommit) ro;
reuseCommits.add(new BitmapCommit(rc, false, entry.getFlags()));
rw.markUninteresting(rc);
// PackBitmapIndexRemapper.ofObjectType() ties the underlying
// bitmap in the old pack into the new bitmap builder.
bitmapRemapper.ofObjectType(bitmapRemapper.getBitmap(rc),
Constants.OBJ_COMMIT).trim();
reuse.add(rc, Constants.OBJ_COMMIT);
} }
// Add branch tips that are not represented in old bitmap indices. Set // Add branch tips that are not represented in old bitmap indices. Set
@ -360,16 +361,18 @@ class PackWriterBitmapPreparer {
Set<RevCommit> peeledWant = new HashSet<RevCommit>(want.size()); Set<RevCommit> peeledWant = new HashSet<RevCommit>(want.size());
for (AnyObjectId objectId : want) { for (AnyObjectId objectId : want) {
RevObject ro = rw.peel(rw.parseAny(objectId)); RevObject ro = rw.peel(rw.parseAny(objectId));
if (ro instanceof RevCommit && !reuse.contains(ro)) { if (!(ro instanceof RevCommit) || reuse.contains(ro)) {
RevCommit rc = (RevCommit) ro; continue;
peeledWant.add(rc);
rw.markStart(rc);
BitmapBuilder bitmap = commitBitmapIndex.newBitmapBuilder();
bitmap.or(reuse);
bitmap.add(rc, Constants.OBJ_COMMIT);
tipCommitBitmaps.add(new BitmapBuilderEntry(rc, bitmap));
} }
RevCommit rc = (RevCommit) ro;
peeledWant.add(rc);
rw.markStart(rc);
BitmapBuilder bitmap = commitBitmapIndex.newBitmapBuilder();
bitmap.or(reuse);
bitmap.add(rc, Constants.OBJ_COMMIT);
tipCommitBitmaps.add(new BitmapBuilderEntry(rc, bitmap));
} }
// Create a list of commits in reverse order (older to newer). // Create a list of commits in reverse order (older to newer).
@ -382,10 +385,11 @@ class PackWriterBitmapPreparer {
commits[--pos] = rc; commits[--pos] = rc;
for (BitmapBuilderEntry entry : tipCommitBitmaps) { for (BitmapBuilderEntry entry : tipCommitBitmaps) {
BitmapBuilder bitmap = entry.getBuilder(); BitmapBuilder bitmap = entry.getBuilder();
if (bitmap.contains(rc)) { if (!bitmap.contains(rc)) {
for (RevCommit c : rc.getParents()) { continue;
bitmap.add(c, Constants.OBJ_COMMIT); }
} for (RevCommit c : rc.getParents()) {
bitmap.add(c, Constants.OBJ_COMMIT);
} }
} }
pm.update(1); pm.update(1);

Loading…
Cancel
Save