aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit/storage
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2011-02-28 16:30:23 -0800
committerShawn O. Pearce <spearce@spearce.org>2011-03-01 10:07:08 -0800
commitbd6853e90a58ebda706de64e7e50211e62203771 (patch)
treed968e93d206b149343b4cb1594279f5e4d692d3d /org.eclipse.jgit/src/org/eclipse/jgit/storage
parent26dffbe04df62b4cb9e5d8f900ebc474c934392a (diff)
downloadjgit-bd6853e90a58ebda706de64e7e50211e62203771.tar.gz
jgit-bd6853e90a58ebda706de64e7e50211e62203771.zip
PackWriter: Position tags after commits
Annotated tags need to be parsed by many viewing tools, but putting them at the end of the pack hurts because kernel prefetching might not have loaded them, since they are so far from the commits they reference. Position tags right behind the commits, but before the trees. Typically the annotated tag set for a repository is very small, so the extra prefetch burden it puts on tools that don't need annotated tags (but do need commits and trees) is fairly low. Change-Id: Ibbabdd94e7d563901c0309c79a496ee049cdec50 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.java6
1 files changed, 4 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 2a5caf854c..57dca95a3b 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
@@ -977,8 +977,10 @@ public class PackWriter {
}
private void writeObjects(PackOutputStream out) throws IOException {
- for (List<ObjectToPack> list : objectsLists)
- writeObjects(out, list);
+ writeObjects(out, objectsLists[Constants.OBJ_COMMIT]);
+ writeObjects(out, objectsLists[Constants.OBJ_TAG]);
+ writeObjects(out, objectsLists[Constants.OBJ_TREE]);
+ writeObjects(out, objectsLists[Constants.OBJ_BLOB]);
}
private void writeObjects(PackOutputStream out, List<ObjectToPack> list)