]> source.dussan.org Git - jgit.git/commitdiff
Canonicalize worktree path in BaseRepositoryBuilder if set via config 46/19546/2
authorRobin Stocker <robin@nibor.org>
Mon, 9 Dec 2013 23:13:08 +0000 (00:13 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Thu, 12 Dec 2013 01:21:41 +0000 (02:21 +0100)
This is the case for submodules in .git/modules, which typically have a
worktree config of "../../../dir". This can confuse callers, which e.g.
try to call Repository.stripWorkDir with it.

Bug: 423644
Change-Id: I0c00953f73f9316a66d0fc10eab52d8779c88f00
Signed-off-by: Robin Stocker <robin@nibor.org>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/lib/BaseRepositoryBuilder.java

index db622f319ddf97c79ef1bd9c325ba6b1a5b56e44..7a6ddb39a1136bca6677b1f33b228aea09ae73c9 100644 (file)
@@ -695,7 +695,7 @@ public class BaseRepositoryBuilder<B extends BaseRepositoryBuilder, R extends Re
                String path = cfg.getString(CONFIG_CORE_SECTION, null,
                                CONFIG_KEY_WORKTREE);
                if (path != null)
-                       return safeFS().resolve(getGitDir(), path);
+                       return safeFS().resolve(getGitDir(), path).getCanonicalFile();
 
                // If core.bare is set, honor its value. Assume workTree is
                // the parent directory of the repository.