From 60285123e6c6c2159048dcabf4f90c113a482630 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Thu, 18 Feb 2010 00:21:15 +0100 Subject: [PATCH] Fix sharing projects ConnectProviderOperation now expects absolute repo path. IPath.append(String) adds path delimiters automatically. Bug: 302955 Change-Id: I982fe856b9b3595a0ddf7d2a75f8a26bd5f8481a Signed-off-by: Matthias Sohn --- .../egit/core/op/ConnectProviderOperation.java | 2 +- .../egit/ui/internal/sharing/ExistingOrNewPage.java | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConnectProviderOperation.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConnectProviderOperation.java index d61a0b37..45c6707a 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConnectProviderOperation.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConnectProviderOperation.java @@ -51,7 +51,7 @@ public class ConnectProviderOperation implements IWorkspaceRunnable { * the project to connect to the Git team provider. */ public ConnectProviderOperation(final IProject proj) { - this(proj, proj.getLocation().append("/").append(Constants.DOT_GIT).toFile()); + this(proj, proj.getLocation().append(Constants.DOT_GIT).toFile()); } /** diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/ExistingOrNewPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/ExistingOrNewPage.java index 5773300d..62e8f73d 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/ExistingOrNewPage.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/ExistingOrNewPage.java @@ -11,7 +11,6 @@ package org.eclipse.egit.ui.internal.sharing; import java.io.File; import java.io.IOException; -import java.net.URI; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -33,6 +32,7 @@ import org.eclipse.egit.ui.UIText; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; @@ -48,7 +48,6 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.swt.widgets.TreeItem; -import org.eclipse.jgit.lib.Constants; /** * Wizard page for connecting projects to Git repositories. @@ -268,9 +267,8 @@ class ExistingOrNewPage extends WizardPage { } /** - * @return map between project and repository root directory (converted to a - * path relative to project's root) for all projects selected by - * user + * @return map between project and repository root directory (converted to an + * absolute path) for all projects selected by user */ public Map getProjects() { final TreeItem[] selection = tree.getSelection(); @@ -282,13 +280,12 @@ class ExistingOrNewPage extends WizardPage { } final IProject project = (IProject) treeItem.getData(); - final File selectedRepo = new File(treeItem.getText(2)); - File localPathToRepo = selectedRepo; - if (selectedRepo.isAbsolute()) { - final URI projectLocation = project.getLocationURI(); - localPathToRepo = new File(projectLocation.relativize(selectedRepo.toURI()).getPath()); + final IPath selectedRepo = Path.fromOSString(treeItem.getText(2)); + IPath localPathToRepo = selectedRepo; + if (!selectedRepo.isAbsolute()) { + localPathToRepo = project.getLocation().append(selectedRepo); } - ret.put(project, localPathToRepo); + ret.put(project, localPathToRepo.toFile()); } return ret; } -- 2.11.4.GIT