diff options
-rw-r--r-- | bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java index a425cd92d..bbd539ea3 100644 --- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java +++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/util/PrepareForReplaceVisitor.java @@ -66,21 +66,26 @@ public class PrepareForReplaceVisitor implements ICVSResourceVisitor { * @see ICVSResourceVisitor#visitFolder(ICVSFolder) */ public void visitFolder(ICVSFolder folder) throws CVSException { - // Visit the children of the folder as appropriate - if (depth == IResource.DEPTH_INFINITE) { - folder.acceptChildren(this); - } else if (depth == IResource.DEPTH_ONE) { - ICVSResource[] files = folder.members(ICVSFolder.FILE_MEMBERS); - for (int i = 0; i < files.length; i++) { - files[i].accept(this); + // Delete unmanaged folders if the user wants them deleted + if (!folder.isCVSFolder() && CVSProviderPlugin.getPlugin().isReplaceUnmanaged()) { + folder.delete(); + } else { + // Visit the children of the folder as appropriate + if (depth == IResource.DEPTH_INFINITE) { + folder.acceptChildren(this); + } else if (depth == IResource.DEPTH_ONE) { + ICVSResource[] files = folder.members(ICVSFolder.FILE_MEMBERS); + for (int i = 0; i < files.length; i++) { + files[i].accept(this); + } } - } - // Also delete ignored child files that start with .# - ICVSResource[] ignoredFiles = folder.members(ICVSFolder.FILE_MEMBERS | ICVSFolder.IGNORED_MEMBERS); - for (int i = 0; i < ignoredFiles.length; i++) { - ICVSResource cvsResource = ignoredFiles[i]; - if (cvsResource.getName().startsWith(".#")) { //$NON-NLS-1$ - cvsResource.delete(); + // Also delete ignored child files that start with .# + ICVSResource[] ignoredFiles = folder.members(ICVSFolder.FILE_MEMBERS | ICVSFolder.IGNORED_MEMBERS); + for (int i = 0; i < ignoredFiles.length; i++) { + ICVSResource cvsResource = ignoredFiles[i]; + if (cvsResource.getName().startsWith(".#")) { //$NON-NLS-1$ + cvsResource.delete(); + } } } monitor.worked(1); |