jgit/org.eclipse.jgit
Shawn O. Pearce ece88b99eb Redo PackWriter object reuse output
Output of selected reuses is refactored to use a new ObjectReuseAsIs
interface that extends the ObjectReader.  This interface allows the
reader to control how it performs the reuse into the output stream,
but also allows it to throw an exception to request the writer to
find a different candidate representation.

The PackFile reuse code was overhauled, cleaning up the APIs so they
aren't exposed in the object loader, but instead are now a single
method on the PackFile itself.  The reuse algorithm was changed to do
a data verification pass, followed by the copy pass to the output.
This permits us to work around a corrupt object in a pack file by
seeking another copy of that object when this one is bad.

The reuse code was also optimized for the common case, where the
in-pack representation is under 16 KiB.  In these smaller cases
data is sent to the pack writer more directly, avoiding some copying.

Change-Id: I6350c2b444118305e8446ce1dfd049259832bcca
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-06-26 14:46:05 -07:00
..
.settings Fix line endings 2010-06-18 23:36:18 +02:00
META-INF Redo event listeners to be more generic 2010-06-25 18:03:41 -07:00
findBugs Initial JGit contribution to eclipse.org 2009-09-29 16:47:03 -07:00
resources/org/eclipse/jgit Refactor repository construction to builder class 2010-06-25 17:58:40 -07:00
src/org/eclipse/jgit Redo PackWriter object reuse output 2010-06-26 14:46:05 -07:00
.classpath Externalize strings from JGit 2010-05-19 14:37:16 -07:00
.fbprefs Initial JGit contribution to eclipse.org 2009-09-29 16:47:03 -07:00
.gitignore Finish removing Apache Felix maven-bundle-plugin 2010-01-12 11:46:55 -08:00
.project Adding PDE API Tools nature to JGit 2010-01-16 10:00:30 -06:00
about.html Adding some Eclipse-related legal files to JGit 2010-02-03 15:18:06 -06:00
build.properties Add "resources/" as a source folder 2010-06-05 14:39:27 +02:00
plugin.properties Cleaning up provider and feature names 2010-04-27 09:26:25 -05:00
pom.xml Start 0.9 development 2010-06-14 08:11:27 -07:00