From 840a79d247a762f427fe99578cddf4f996cef988 Mon Sep 17 00:00:00 2001 From: Marek Zawirski Date: Mon, 2 Jun 2008 09:00:44 +0200 Subject: [PATCH] Move PackFile.SIGNATURE to Constants.PACK_SIGNATURE Move to avoid redundancy in reading and writing packfiles in 3 places. It seems to be a better place for format-related constant. Signed-off-by: Marek Zawirski --- org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java | 8 ++++++++ org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java | 12 +++++------- .../src/org/spearce/jgit/transport/IndexPack.java | 8 +++----- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java index d1e8a410..7c2cef9f 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Constants.java @@ -188,6 +188,14 @@ public final class Constants { */ public static final int OBJ_REF_DELTA = 7; + /** + * Pack file signature that occurs at file header - identifies file as Git + * packfile formatted. + *

+ * This constant is fixed and is defined by the Git packfile format. + */ + public static final byte[] PACK_SIGNATURE = { 'P', 'A', 'C', 'K' }; + /** Native character encoding for commit messages, file names... */ public static final String CHARACTER_ENCODING = "UTF-8"; diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java b/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java index ccff47dc..b1fbc2a2 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/PackFile.java @@ -50,8 +50,6 @@ import org.spearce.jgit.util.NB; * objects are similar. */ public class PackFile { - private static final byte[] SIGNATURE = { 'P', 'A', 'C', 'K' }; - private final WindowedFile pack; private final PackIndex idx; @@ -165,17 +163,17 @@ public class PackFile { private void readPackHeader() throws IOException { final WindowCursor curs = new WindowCursor(); long position = 0; - final byte[] sig = new byte[SIGNATURE.length]; + final byte[] sig = new byte[Constants.PACK_SIGNATURE.length]; final byte[] intbuf = new byte[4]; final long vers; - if (pack.read(position, sig, curs) != SIGNATURE.length) + if (pack.read(position, sig, curs) != Constants.PACK_SIGNATURE.length) throw new IOException("Not a PACK file."); - for (int k = 0; k < SIGNATURE.length; k++) { - if (sig[k] != SIGNATURE[k]) + for (int k = 0; k < Constants.PACK_SIGNATURE.length; k++) { + if (sig[k] != Constants.PACK_SIGNATURE[k]) throw new IOException("Not a PACK file."); } - position += SIGNATURE.length; + position += Constants.PACK_SIGNATURE.length; pack.readFully(position, intbuf, curs); vers = NB.decodeUInt32(intbuf, 0); diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java index 0b5c9628..bec211cf 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java @@ -74,8 +74,6 @@ public class IndexPack { /** Progress message when computing names of delta compressed objects. */ public static final String PROGRESS_RESOLVE_DELTA = "Resolving deltas"; - private static final byte[] SIGNATURE = { 'P', 'A', 'C', 'K' }; - private static final int BUFFER_SIZE = 2048; /** @@ -477,10 +475,10 @@ public class IndexPack { } private void readPackHeader() throws IOException { - final int hdrln = SIGNATURE.length + 4 + 4; + final int hdrln = Constants.PACK_SIGNATURE.length + 4 + 4; final int p = fillFromInput(hdrln); - for (int k = 0; k < SIGNATURE.length; k++) - if (buf[p + k] != SIGNATURE[k]) + for (int k = 0; k < Constants.PACK_SIGNATURE.length; k++) + if (buf[p + k] != Constants.PACK_SIGNATURE[k]) throw new IOException("Not a PACK file."); final long vers = NB.decodeUInt32(buf, p + 4); -- 2.11.4.GIT