aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/CachedPack.java21
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java1
2 files changed, 22 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/CachedPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/CachedPack.java
index c369e653ef..580fa78416 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/CachedPack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/CachedPack.java
@@ -72,6 +72,27 @@ public abstract class CachedPack {
public abstract long getObjectCount() throws IOException;
/**
+ * Get the number of delta objects stored in this pack.
+ * <p>
+ * This is an optional method, not every cached pack storage system knows
+ * the precise number of deltas stored within the pack. This number must be
+ * smaller than {@link #getObjectCount()} as deltas are not supposed to span
+ * across pack files.
+ * <p>
+ * This method must be fast, if the only way to determine delta counts is to
+ * scan the pack file's contents one object at a time, implementors should
+ * return 0 and avoid the high cost of the scan.
+ *
+ * @return the number of deltas; 0 if the number is not known or there are
+ * no deltas.
+ * @throws IOException
+ * if the delta count cannot be read.
+ */
+ public long getDeltaCount() throws IOException {
+ return 0;
+ }
+
+ /**
* Determine if the pack contains the requested objects.
*
* @param <T>
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 3b1016926f..b8b2767677 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
@@ -588,6 +588,7 @@ public class PackWriter {
for (CachedPack pack : cachedPacks) {
stats.reusedObjects += pack.getObjectCount();
+ stats.reusedDeltas += pack.getDeltaCount();
reuseSupport.copyPackAsIs(out, pack);
}
writeChecksum(out);