git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [JGIT PATCH 1/1] Fix for Repository.stripWorkDir when using partial paths

From
Shawn O. Pearce <spearce@spearce.org>
Date
Aug 12, 2009, 14:29 UTC
Message-ID
<20090812142918.GB1033@spearce.org>
In-Reply-To
<4A821167.6030107@writeme.com>
"Adam W. Hawks" <awhawks@writeme.com> wrote:
Show 5 quoted lines
> When you call stripWorkDir with a relative path
> you can get a string out of bounds error.
> 
> This change fixes that problem by using the absolute paths
> of the file instead of its relative name.
Except it made the existing test suite fail, badly.  I'm counting
7 errors and 28 test failures as a result of applying this patch.
 
Show 13 quoted lines
> diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
> index 468cf4c..a68817b 100644
> --- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
> +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
> @@ -1036,7 +1036,7 @@ public static boolean isValidRefName(final String refName) {
>  	 * @return normalized repository relative path
>  	 */
>  	public static String stripWorkDir(File wd, File f) {
> -		String relName = f.getPath().substring(wd.getPath().length() + 1);
> +		String relName = f.getAbsolutePath().substring(wd.getPath().length() + 1);
>  		relName = relName.replace(File.separatorChar, '/');
>  		return relName;
>  	}
-- 
Shawn.
Previous: Adam W. HawksNext: Robin Rosenberg
Message 2 of 4 in “Fix for Repository.stripWorkDir when using partial paths”
  1. 1/1 Fix for Repository.stripWorkDir when using partial pathsAdam W. Hawks, Aug 12, 2009
  2. Shawn O. PearceAug 12, 2009
  3. Robin RosenbergAug 12, 2009
  4. Make Repository.stripWorkDir more robustJonas Fonseca, Aug 19, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.