diff options
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java | 12 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjectRepresentation.java | 5 |
2 files changed, 11 insertions, 6 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java index a5a8c56d94..b5ea6b58a5 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java @@ -273,6 +273,7 @@ public class DfsGarbageCollector { PackWriter pw = newPackWriter(); try { + pw.setTagTargets(tagTargets); pw.preparePack(pm, allHeads, Collections.<ObjectId> emptySet()); if (0 < pw.getObjectCount()) writePack(GC, pw, pm); @@ -299,7 +300,15 @@ public class DfsGarbageCollector { private void packGarbage(ProgressMonitor pm) throws IOException { // TODO(sop) This is ugly. The garbage pack needs to be deleted. - PackWriter pw = newPackWriter(); + PackConfig cfg = new PackConfig(packConfig); + cfg.setReuseDeltas(true); + cfg.setReuseObjects(true); + cfg.setDeltaCompress(false); + cfg.setBuildBitmaps(false); + + PackWriter pw = new PackWriter(cfg, ctx); + pw.setDeltaBaseAsOffset(true); + pw.setReuseDeltaCommits(true); try { RevWalk pool = new RevWalk(ctx); pm.beginTask("Finding garbage", objectsBefore()); @@ -345,7 +354,6 @@ public class DfsGarbageCollector { PackWriter pw = new PackWriter(packConfig, ctx); pw.setDeltaBaseAsOffset(true); pw.setReuseDeltaCommits(false); - pw.setTagTargets(tagTargets); return pw; } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjectRepresentation.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjectRepresentation.java index 073d94299a..45bf7f3b4e 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjectRepresentation.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjectRepresentation.java @@ -44,9 +44,7 @@ package org.eclipse.jgit.internal.storage.dfs; import static org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource.GC; -import static org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource.UNREACHABLE_GARBAGE; -import org.eclipse.jgit.internal.storage.dfs.DfsObjDatabase.PackSource; import org.eclipse.jgit.internal.storage.pack.StoredObjectRepresentation; import org.eclipse.jgit.lib.ObjectId; @@ -80,7 +78,6 @@ class DfsObjectRepresentation extends StoredObjectRepresentation { @Override public boolean wasDeltaAttempted() { - PackSource source = pack.getPackDescription().getPackSource(); - return source == GC || source == UNREACHABLE_GARBAGE; + return pack.getPackDescription().getPackSource() == GC; } } |