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: [JGIT PATCH 06/12] Move PackFile.SIGNATURE to Constants.PACK_SIGNATURE
Date: Mon, 2 Jun 2008 23:24:37 +0200 [thread overview]
Message-ID: <1212441883-12990-7-git-send-email-marek.zawirski@gmail.com> (raw)
In-Reply-To: <1212441883-12990-6-git-send-email-marek.zawirski@gmail.com>
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 <marek.zawirski@gmail.com>
---
.../src/org/spearce/jgit/lib/Constants.java | 8 ++++++++
.../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 d1e8a41..7c2cef9 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.
+ * <p>
+ * <b>This constant is fixed and is defined by the Git packfile format.</b>
+ */
+ 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 ccff47d..b1fbc2a 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 0b5c962..bec211c 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);
--
1.5.5.1
next prev parent reply other threads:[~2008-06-02 21:26 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-02 21:24 [JGIT PATCH 00/12] Extensions in core needed by PackWriter Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 01/12] Format PackFile class Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 02/12] Format PackIndex class Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 03/12] Format PackIndexV1 class Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 04/12] Add getType() method to RevObject hierarchy Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 05/12] Replace instanceof in WalkFetchConnection with getType() Marek Zawirski
2008-06-02 21:24 ` Marek Zawirski [this message]
2008-06-02 21:24 ` [JGIT PATCH 07/12] Add overload of fromRaw() in MutableObjectId accepting int[] Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 08/12] Copying constructor of MutableObjectId Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 09/12] Add getSize() method to ObjectIdSubclassMap Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 10/12] Add getObjectCount() method to PackFile Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 11/12] Entries iterator in PackIndex and indirectly PackFile Marek Zawirski
2008-06-02 21:24 ` [JGIT PATCH 12/12] Add PackIndex specific tests, currently only iterators tests Marek Zawirski
2008-06-06 13:24 ` [JGIT PATCH 09/12] Add getSize() method to ObjectIdSubclassMap Robin Rosenberg
2008-06-07 0:10 ` [JGIT PATCH v2 09/12] Add size() " Marek Zawirski
2008-06-06 13:24 ` [JGIT PATCH 04/12] Add getType() method to RevObject hierarchy Robin Rosenberg
2008-06-07 0:10 ` [JGIT PATCH v2 " Marek Zawirski
2008-06-02 22:15 ` [JGIT PATCH 00/12] Extensions in core needed by PackWriter Johannes Schindelin
2008-06-02 22:58 ` Marek Zawirski
2008-06-02 23:43 ` Johannes Schindelin
2008-06-06 13:24 ` Robin Rosenberg
2008-06-07 0:06 ` Marek Zawirski
2008-06-07 7:16 ` Shawn O. Pearce
2008-06-10 21:09 ` Robin Rosenberg
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=1212441883-12990-7-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).