From f58f28a55abbdb802de0a5dfc0a04427fc162f7a Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Mon, 23 Jun 2008 22:10:08 -0400 Subject: [PATCH] Default IndexPack to honor pack.indexversion configuration Users may already desire to create only v2 pack index files, as the extra CRC code makes repacking faster due to quicker delta reuse code paths being available. However we still must default to version 0 to select oldest version available to improve our changes of being compatible with really old Git executables. Signed-off-by: Shawn O. Pearce Signed-off-by: Robin Rosenberg --- org.spearce.jgit/src/org/spearce/jgit/lib/CoreConfig.java | 11 +++++++++++ .../src/org/spearce/jgit/transport/IndexPack.java | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/CoreConfig.java b/org.spearce.jgit/src/org/spearce/jgit/lib/CoreConfig.java index 01d42103..2dd8aea6 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/CoreConfig.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/CoreConfig.java @@ -48,8 +48,11 @@ public class CoreConfig { private final int compression; + private final int packIndexVersion; + CoreConfig(final RepositoryConfig rc) { compression = rc.getInt("core", "compression", DEFAULT_COMPRESSION); + packIndexVersion = rc.getInt("pack", "indexversion", 0); } /** @@ -59,4 +62,12 @@ public class CoreConfig { public int getCompression() { return compression; } + + /** + * @return the preferred pack index file format; 0 for oldest possible. + * @see org.spearce.jgit.transport.IndexPack + */ + public int getPackIndexVersion() { + return packIndexVersion; + } } diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java index 63558090..24a05779 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java @@ -102,7 +102,9 @@ public class IndexPack { final File base; base = new File(objdir, n.substring(0, n.length() - suffix.length())); - return new IndexPack(db, is, base); + final IndexPack ip = new IndexPack(db, is, base); + ip.setIndexVersion(db.getConfig().getCore().getPackIndexVersion()); + return ip; } private final Repository repo; -- 2.11.4.GIT