[JGIT PATCH 0/9] Misc. pack code cleanups
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Feb 12, 2009, 02:36 UTC
- Message-ID
- <1234406219-19547-1-git-send-email-spearce@spearce.org>
This is a short batch of misc. cleanups related to pack handling. I'm trying to work towards making it safer to run "git gc" while JGit has a repository open.
Currently:
- when a new pack is added we don't notice it; - when a previously listed pack is removed, we crash; - if a pack stays but its offsets change, we crash; - objects can go *poof* if they were loose and get packed;
This series doesn't fix any of these issues, but it cleans up the code enough that I can start to consider this more.
The last patch is perhaps a bit more controversial. It sets core.packindex to 2 by default, which was done in C Git back when 1.6.0 shipped.
Shawn O. Pearce (9): Remove the Repository parameter from PackFile's constructor Remove dead stats code from WindowCache Document why WindowFile's hash is *31 Allow PackFile to lazily load its PackIndex on first demand Arrange pack files in recency order to improve quick hits Rename readPackHeader() to be onOpenPack() Validate the pack's footer checksum matches that in the index Remove yet another legacy StGit utility function Make pack.indexversion config option default to version 2
.../src/org/spearce/jgit/pgm/IndexPack.java | 4 +- .../tst/org/spearce/jgit/lib/PackWriterTest.java | 2 +- .../tst/org/spearce/jgit/lib/T0004_PackReader.java | 2 +- .../org/spearce/jgit/transport/IndexPackTest.java | 4 +- .../src/org/spearce/jgit/lib/CoreConfig.java | 3 +- .../src/org/spearce/jgit/lib/PackFile.java | 95 +++++++++++++------ .../src/org/spearce/jgit/lib/PackIndex.java | 3 + .../src/org/spearce/jgit/lib/PackIndexV1.java | 3 + .../src/org/spearce/jgit/lib/PackIndexV2.java | 3 + .../src/org/spearce/jgit/lib/PackWriter.java | 1 + .../org/spearce/jgit/lib/PackedObjectLoader.java | 4 +- .../src/org/spearce/jgit/lib/Repository.java | 41 +++------ .../src/org/spearce/jgit/lib/WindowCache.java | 31 +------ .../src/org/spearce/jgit/lib/WindowedFile.java | 4 + 14 files changed, 106 insertions(+), 94 deletions(-)