aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit/storage
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2011-03-01 09:28:11 -0800
committerShawn O. Pearce <spearce@spearce.org>2011-03-01 10:07:08 -0800
commit67b064fc9fa7418fab83957b4f4e4baf9c6e08be (patch)
tree29f5533386da9a50b51157d67c67c1a132fc76ad /org.eclipse.jgit/src/org/eclipse/jgit/storage
parentbf1b970de1e49e1b94e56ff886078c92890ae228 (diff)
downloadjgit-67b064fc9fa7418fab83957b4f4e4baf9c6e08be.tar.gz
jgit-67b064fc9fa7418fab83957b4f4e4baf9c6e08be.zip
PackWriter: Do not delta compress already packed objects
This is a tiny optimization to how delta search works. Checking for isReuseAsIs() avoids doing delta compression search on non-delta objects already stored in packs within the repository. Such objects are not likely to be delta compressable, as they were already delta searched when their containing pack was generated and they were not delta compressed at that time. Doing delta compression now is unlikely to produce a different result, but would waste a lot of CPU. The isReuseAsIs() flag is checked before isDoNotDelta() because it is very common to reuse objects in the output pack. Most objects get reused, and only a handful have the isDoNotDelta() bit set. Moving the check earlier allows the loop to more quickly skip through objects that will never need to be considered. Change-Id: Ied757363f775058177fc1befb8ace20fe9759bac Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/storage')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java
index ee7ffae010..eee1215559 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java
@@ -792,9 +792,9 @@ public class PackWriter {
private int findObjectsNeedingDelta(ObjectToPack[] list, int cnt, int type) {
for (ObjectToPack otp : objectsLists[type]) {
- if (otp.isDoNotDelta()) // delta is disabled for this path
+ if (otp.isReuseAsIs()) // already reusing a representation
continue;
- if (otp.isDeltaRepresentation()) // already reusing a delta
+ if (otp.isDoNotDelta()) // delta is disabled for this path
continue;
otp.setWeight(0);
list[cnt++] = otp;