Index: src/org/eclipse/team/core/Team.java =================================================================== RCS file: /home/eclipse/org.eclipse.team.core/src/org/eclipse/team/core/Team.java,v retrieving revision 1.14 diff -u -r1.14 Team.java --- src/org/eclipse/team/core/Team.java 18 Jun 2002 20:29:20 -0000 1.14 +++ src/org/eclipse/team/core/Team.java 27 Jun 2002 15:22:32 -0000 @@ -30,7 +30,12 @@ import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IStorage; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtension; @@ -513,6 +518,26 @@ loadTextState(); readIgnoreState(); initializePluginIgnores(); + // Register a delta listener that will tell the provider about a project move + ResourcesPlugin.getWorkspace().addResourceChangeListener(new IResourceChangeListener() { + public void resourceChanged(IResourceChangeEvent event) { + IResourceDelta[] projectDeltas = event.getDelta().getAffectedChildren(); + for (int i = 0; i < projectDeltas.length; i++) { + IResourceDelta delta = projectDeltas[i]; + IResource resource = delta.getResource(); + RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject()); + // Only consider projects that have a provider + if (provider == null) continue; + // Only consider project additions that are moves + if (delta.getKind() != IResourceDelta.ADDED) continue; + if ((delta.getFlags() & IResourceDelta.MOVED_FROM) == 0) continue; + // Only consider providers whose project is not mapped properly already + if (provider.getProject().equals(resource.getProject())) continue; + // Tell the provider about it's new project + provider.setProject(resource.getProject()); + } + } + }, IResourceChangeEvent.PRE_AUTO_BUILD); } catch (TeamException e) { throw new CoreException(e.getStatus()); }