From: Marek Zawirski <marek.zawirski@gmail.com>
To: robin.rosenberg@dewire.com, spearce@spearce.org
Cc: git@vger.kernel.org, Marek Zawirski <marek.zawirski@gmail.com>
Subject: [EGIT PATCH 00/20] PackWriter, first usable attempt
Date: Sun, 15 Jun 2008 23:45:29 +0200 [thread overview]
Message-ID: <1213566349-25395-1-git-send-email-marek.zawirski@gmail.com> (raw)
Studying made me busy last week, but I'm back:
with another GSoC series, adding some usable feature this time.
At first, some stuff was still missing to produce packs, mostly
raw-data access related and ObjectWalk related.
Finally, we've got some support for pack writing! It's not that
power that C git version offers, but something usable. Delta
generation is not supported. Although we can reuse deltas and objects,
and support all other (I hope) options of git-pack-objects directly or
indirectly, most importantly --thin.
Pack writing and some other features are tested, seem to work.
This implementation of packing is not a very valuable thing directly
(achieving efficient storage), however it's a base for enhancements
and can be used for sending packs over net (with some assumptions).
It's more a "repacking" than "packing" tool.
So... I'm switching now to push implementation. If time allows,
delta-algorithms will be added later.
Robin,
this series is based on master of egit.git when I saw it last time
before repo.or.cz went down (9354293) ;) I'll add packwriter branch
to my repo when server is up.
Marek Zawirski (20):
Fix typo in PackIndexV2
Integer versions of copyRawTo() and fromRaw() in ObjectId
Add openObjectInAllPacks() to Repository, exposing packed objects
storage
WindowedFile fragments copying: copyToStream()
Reverse pack index implementation: PackReverseIndex
Tests for PackReverseIndex
Refactor PackIndexV2 - extract binarySearchLevelTwo()
CRC32 support for PackIndex
CRC32 PackIndex tests
Format PackedObjectLoader class
Format UnpackedObjectLoader class
Format DeltaOfsPackedObjectLoader class
Raw-data operations in ObjectLoaders and PackFile
Add hasRevSort() in RevWalk for faster sorting strategy checking
Refactor getRevSort() calls to hasRevSort()
Support for RevSort.BOUNDARY in ObjectWalk
Rename confusing objects field in ObjectWalk
New CountingOutputStream class - stream decorator
Simplified implementation of pack creation: PackWriter
PackWriter test suite
.../tst/org/spearce/jgit/lib/PackIndexTest.java | 10 +
.../tst/org/spearce/jgit/lib/PackIndexV1Test.java | 19 +
.../tst/org/spearce/jgit/lib/PackIndexV2Test.java | 30 +
.../org/spearce/jgit/lib/PackReverseIndexTest.java | 115 +++
.../tst/org/spearce/jgit/lib/PackWriterTest.java | 454 ++++++++++
org.spearce.jgit.test/tst/pack-huge.idx | Bin 0 -> 2368 bytes
.../src/org/spearce/jgit/lib/AnyObjectId.java | 16 +
.../jgit/lib/DeltaOfsPackedObjectLoader.java | 24 +-
.../spearce/jgit/lib/DeltaPackedObjectLoader.java | 9 +-
.../jgit/lib/DeltaRefPackedObjectLoader.java | 15 +-
.../src/org/spearce/jgit/lib/ObjectId.java | 26 +
.../src/org/spearce/jgit/lib/ObjectLoader.java | 24 +
.../src/org/spearce/jgit/lib/PackFile.java | 85 ++-
.../src/org/spearce/jgit/lib/PackIndex.java | 23 +
.../src/org/spearce/jgit/lib/PackIndexV1.java | 10 +
.../src/org/spearce/jgit/lib/PackIndexV2.java | 73 +-
.../src/org/spearce/jgit/lib/PackReverseIndex.java | 179 ++++
.../src/org/spearce/jgit/lib/PackWriter.java | 882 ++++++++++++++++++++
.../org/spearce/jgit/lib/PackedObjectLoader.java | 47 +-
.../src/org/spearce/jgit/lib/Repository.java | 42 +
.../org/spearce/jgit/lib/UnpackedObjectLoader.java | 26 +-
.../spearce/jgit/lib/WholePackedObjectLoader.java | 20 +-
.../src/org/spearce/jgit/lib/WindowedFile.java | 43 +
.../src/org/spearce/jgit/revwalk/ObjectWalk.java | 40 +-
.../src/org/spearce/jgit/revwalk/RevSort.java | 5 +-
.../src/org/spearce/jgit/revwalk/RevWalk.java | 11 +
.../org/spearce/jgit/revwalk/StartGenerator.java | 14 +-
.../spearce/jgit/util/CountingOutputStream.java | 89 ++
28 files changed, 2258 insertions(+), 73 deletions(-)
create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackReverseIndexTest.java
create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java
create mode 100644 org.spearce.jgit.test/tst/pack-huge.idx
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/PackReverseIndex.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/PackWriter.java
create mode 100644 org.spearce.jgit/src/org/spearce/jgit/util/CountingOutputStream.java
next reply other threads:[~2008-06-15 21:47 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-15 21:45 Marek Zawirski [this message]
2008-06-15 21:45 ` [EGIT PATCH 01/20] Fix typo in PackIndexV2 Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 02/20] Integer versions of copyRawTo() and fromRaw() in ObjectId Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 03/20] Add openObjectInAllPacks() to Repository, exposing packed objects storage Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 04/20] WindowedFile fragments copying: copyToStream() Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 05/20] Reverse pack index implementation: PackReverseIndex Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 06/20] Tests for PackReverseIndex Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 07/20] Refactor PackIndexV2 - extract binarySearchLevelTwo() Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 08/20] CRC32 support for PackIndex Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 09/20] CRC32 PackIndex tests Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 10/20] Format PackedObjectLoader class Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 11/20] Format UnpackedObjectLoader class Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 12/20] Format DeltaOfsPackedObjectLoader class Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 13/20] Raw-data operations in ObjectLoaders and PackFile Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 14/20] Add hasRevSort() in RevWalk for faster sorting strategy checking Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 15/20] Refactor getRevSort() calls to hasRevSort() Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 16/20] Support for RevSort.BOUNDARY in ObjectWalk Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 17/20] Rename confusing objects field " Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 18/20] New CountingOutputStream class - stream decorator Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 19/20] Simplified implementation of pack creation: PackWriter Marek Zawirski
2008-06-15 21:45 ` [EGIT PATCH 20/20] PackWriter test suite Marek Zawirski
2008-06-17 21:28 ` [EGIT PATCH 21/20] Make isBetterDeltaReuseLoader() static in PackWriter Marek Zawirski
2008-06-17 22:07 ` Robin Rosenberg
2008-06-19 16:26 ` Marek Zawirski
2008-06-16 4:06 ` [EGIT PATCH 05/20] Reverse pack index implementation: PackReverseIndex Shawn O. Pearce
2008-06-16 16:27 ` Marek Zawirski
2008-06-17 2:02 ` Shawn O. Pearce
2008-06-16 5:19 ` [EGIT PATCH 00/20] PackWriter, first usable attempt Shawn O. Pearce
2008-06-16 16:37 ` Marek Zawirski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1213566349-25395-1-git-send-email-marek.zawirski@gmail.com \
--to=marek.zawirski@gmail.com \
--cc=git@vger.kernel.org \
--cc=robin.rosenberg@dewire.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).