[JGIT PATCH 1/8] Expose the raw path for the current entry of a TreeWalk
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Oct 13, 2008, 21:10 UTC
- Message-ID
- <1223932217-4771-2-git-send-email-spearce@spearce.org>
- In-Reply-To
- <1223932217-4771-1-git-send-email-spearce@spearce.org>
Copying the path byte array (keeping it encoded in UTF-8) is quicker than converting to String and then back again to UTF-8 when creating a DirCacheEntry for the current position in a TreeWalk.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org> --- .../src/org/spearce/jgit/treewalk/TreeWalk.java | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/TreeWalk.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/TreeWalk.java index 26544b5..3af3d09 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/treewalk/TreeWalk.java +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/TreeWalk.java @@ -582,6 +582,21 @@ public String getPathString() { } /** + * Get the current entry's complete path as a UTF-8 byte array. + * + * @return complete path of the current entry, from the root of the + * repository. If the current entry is in a subtree there will be at + * least one '/' in the returned string. + */ + public byte[] getRawPath() { + final AbstractTreeIterator t = currentHead; + final int n = t.pathLen; + final byte[] r = new byte[n]; + System.arraycopy(t.path, 0, r, 0, n); + return r; + } + + /** * Test if the supplied path matches the current entry's path. * <p> * This method tests that the supplied path is exactly equal to the current
-- 1.6.0.2.706.g340fc