From: Yuxuan 'fishy' Wang Date: Fri, 6 Jun 2014 00:25:34 +0000 (-0700) Subject: Better way to handle relative URLs in manifest XML X-Git-Tag: v3.5.0.201409071800-rc1~106^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=39001eacc1158050d6f1deaea259b4fe4af136dc;p=jgit.git Better way to handle relative URLs in manifest XML The old implementation will NOT strip the filename part from the baseUrl, e.g. https://android.googlesource.com/platform/manifest with .. will be resolved to https://android.googlesource.com/platform/, which is actually wrong. This implementation will resolve it to https://android.googlesource.com/ to match the behavior of repo. Change-Id: Ia32c8b34e16eacdf37a0da7025bf0b5cc5f67ed2 Signed-off-by: Yuxuan 'fishy' Wang --- diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java index 0bcc969388..22ff066fc3 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java @@ -351,8 +351,8 @@ public class RepoCommand extends GitCommand { } final String remoteUrl; try { - URI uri = new URI(String.format("%s/%s/", baseUrl, remotes.get(defaultRemote))); //$NON-NLS-1$ - remoteUrl = uri.normalize().toString(); + URI uri = new URI(baseUrl); + remoteUrl = uri.resolve(remotes.get(defaultRemote)).toString(); } catch (URISyntaxException e) { throw new SAXException(e); }