ISVNLocalFolder root = SVNWorkspaceRoot.getSVNFolderFor(ResourcesPlugin .getWorkspace().getRoot());
	protected void basicRun(final IProject project, ISVNRemoteFolder resource, final IProgressMonitor pm) throws SVNException {		if (pm != null)		{			pm.beginTask(null, 1000);		}		// Get the location of the workspace root		ISVNLocalFolder root = SVNWorkspaceRoot.getSVNFolderFor(ResourcesPlugin				.getWorkspace().getRoot());		try {			// Perform the checkout			ISVNClientAdapter svnClient = resource.getRepository()					.getSVNClient();			// Prepare the target projects to receive resources			scrubProject(svnClient, resource, project, (pm != null) ? Policy.subMonitorFor(pm, 100)					: null);			boolean deleteDotProject = false;			// check if the remote project has a .project file			ISVNDirEntry[] rootFiles = svnClient.getList(resource.getUrl(),					SVNRevision.HEAD, false);			for (int j = 0; j < rootFiles.length; j++) {				if ((rootFiles[j].getNodeKind() == SVNNodeKind.FILE)						&& (".project".equals(rootFiles[j].getPath()))) {					deleteDotProject = true;				}			}			File destPath;			if (project.getLocation() == null) {				// project.getLocation is null if the project does				// not exist in the workspace				destPath = new File(root.getIResource().getLocation().toFile(),						project.getName());				try {					// we create the directory corresponding to the					// project and we open it					project.create(null);					project.open(null);				} catch (CoreException e1) {					throw new SVNException(							"Cannot create project to checkout to", e1);				}			} else {				destPath = project.getLocation().toFile();			}			//delete the project file if the flag gets set.			//fix for 54			if (deleteDotProject) {				IFile projectFile = project.getFile(".project");				if (projectFile != null) {					try {						// delete the project file, force, no history,						// without progress monitor						projectFile.delete(true, false, null);					} catch (CoreException e1) {						throw new SVNException(								"Cannot delete .project before checkout", e1);					}				}			}			checkoutProject(pm, resource, svnClient, destPath);			// Bring the project into the workspace			refreshProject(project, (pm != null) ? Policy					.subMonitorFor(pm, 100) : null);		} catch (SVNClientException ce) {			throw new SVNException("Error Getting Dir list", ce);		} finally {			if (pm != null) {				pm.done();			}		}	}