From 7f1c2ec1eb81fa1dfca7bfe55bdfb9e8559dcaa2 Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Tue, 26 Mar 2013 13:57:19 -0400 Subject: [PATCH] Always add FileExt to DfsPackDescription Instead of forcing the implementation of the DFS backend to handle making sure the extension bits are set correctly, have the common callers in JGit set the extension at the same time they supply the file sizes to the pack description. This simplifies assumptions for an implementation of the DFS backend. Change-Id: I55142ad8ea08a3e2e8349f72b3714578eba9c342 --- .../eclipse/jgit/internal/storage/dfs/DfsGarbageCollector.java | 3 +++ .../src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java | 2 ++ .../eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java | 2 ++ .../org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java | 1 + 4 files changed, 8 insertions(+) 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 a76e13bdf..a5a8c56d9 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 @@ -358,6 +358,7 @@ private DfsPackDescription writePack(PackSource source, PackWriter pw, out = objdb.writeFile(pack, PACK); try { pw.writePack(pm, pm, out); + pack.addFileExt(PACK); } finally { out.close(); } @@ -366,6 +367,7 @@ private DfsPackDescription writePack(PackSource source, PackWriter pw, try { CountingOutputStream cnt = new CountingOutputStream(out); pw.writeIndex(cnt); + pack.addFileExt(INDEX); pack.setFileSize(INDEX, cnt.getCount()); pack.setIndexVersion(pw.getIndexVersion()); } finally { @@ -377,6 +379,7 @@ private DfsPackDescription writePack(PackSource source, PackWriter pw, try { CountingOutputStream cnt = new CountingOutputStream(out); pw.writeBitmapIndex(cnt); + pack.addFileExt(BITMAP_INDEX); pack.setFileSize(BITMAP_INDEX, cnt.getCount()); } finally { out.close(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java index 9f5ddbdd8..76554c0ad 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java @@ -153,6 +153,7 @@ public void flush() throws IOException { throw new IOException(); byte[] packHash = packOut.writePackFooter(); + packDsc.addFileExt(PACK); packDsc.setFileSize(PACK, packOut.getCount()); packOut.close(); packOut = null; @@ -261,6 +262,7 @@ PackIndex writePackIndex(DfsPackDescription pack, byte[] packHash, buf.writeTo(cnt, null); else index(cnt, packHash, list); + pack.addFileExt(INDEX); pack.setFileSize(INDEX, cnt.getCount()); } finally { os.close(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java index 926395c89..ddd6ff7c0 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackCompactor.java @@ -289,6 +289,7 @@ private static void writePack(DfsObjDatabase objdb, DfsOutputStream out = objdb.writeFile(pack, PACK); try { pw.writePack(pm, pm, out); + pack.addFileExt(PACK); } finally { out.close(); } @@ -301,6 +302,7 @@ private static void writeIndex(DfsObjDatabase objdb, try { CountingOutputStream cnt = new CountingOutputStream(out); pw.writeIndex(cnt); + pack.addFileExt(INDEX); pack.setFileSize(INDEX, cnt.getCount()); pack.setIndexVersion(pw.getIndexVersion()); } finally { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java index f394348b2..6430ea9c2 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackParser.java @@ -148,6 +148,7 @@ public PackLock parse(ProgressMonitor receiving, ProgressMonitor resolving) out = null; currBuf = null; readBlock = null; + packDsc.addFileExt(PACK); packDsc.setFileSize(PACK, packEnd); writePackIndex();