Re: [JGIT PATCH 1/1] Fix for Repository.stripWorkDir when using partial paths
"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.