Class BinaryDelta
java.lang.Object
org.eclipse.jgit.internal.storage.pack.BinaryDelta
Recreate a stream from a base stream and a GIT pack delta.
This entire class is heavily cribbed from patch-delta.c
in the
GIT project. The original delta patching code was written by Nicolas Pitre
(<nico@cam.org>).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic final byte[]
apply
(byte[] base, byte[] delta) Apply the changes defined by delta to the data in base, yielding a new array of bytes.static final byte[]
apply
(byte[] base, byte[] delta, byte[] result) Apply the changes defined by delta to the data in base, yielding a new array of bytes.static String
format
(byte[] delta) Format this delta as a human readable string.static String
format
(byte[] delta, boolean includeHeader) Format this delta as a human readable string.static long
getBaseSize
(byte[] delta) Length of the base object in the delta stream.static long
getResultSize
(byte[] delta) Length of the resulting object in the delta stream.
-
Constructor Details
-
BinaryDelta
public BinaryDelta()
-
-
Method Details
-
getBaseSize
public static long getBaseSize(byte[] delta) Length of the base object in the delta stream.- Parameters:
delta
- the delta stream, or at least the header of it.- Returns:
- the base object's size.
-
getResultSize
public static long getResultSize(byte[] delta) Length of the resulting object in the delta stream.- Parameters:
delta
- the delta stream, or at least the header of it.- Returns:
- the resulting object's size.
-
apply
public static final byte[] apply(byte[] base, byte[] delta) Apply the changes defined by delta to the data in base, yielding a new array of bytes.- Parameters:
base
- some byte representing an object of some kind.delta
- a git pack delta defining the transform from one version to another.- Returns:
- patched base
-
apply
public static final byte[] apply(byte[] base, byte[] delta, byte[] result) Apply the changes defined by delta to the data in base, yielding a new array of bytes.- Parameters:
base
- some byte representing an object of some kind.delta
- a git pack delta defining the transform from one version to another.result
- array to store the result into. If null the result will be allocated and returned.- Returns:
- either
result
, or the result array allocated.
-
format
Format this delta as a human readable string.- Parameters:
delta
- the delta instruction sequence to format.- Returns:
- the formatted delta.
-
format
Format this delta as a human readable string.- Parameters:
delta
- the delta instruction sequence to format.includeHeader
- true if the header (base size and result size) should be included in the formatting.- Returns:
- the formatted delta.
-