}
	public boolean moveFile(IResourceTree tree, IFile source,			IFile destination, int updateFlags, IProgressMonitor monitor) {		try {			ISVNLocalFile resource = new LocalFile(source);			if (!resource.isManaged())				return false; // pass			ISVNClientAdapter svnClient = resource.getRepository()					.getSVNClient();			monitor.beginTask(null, 1000);			monitor.setTaskName("Working..");			boolean force = (updateFlags & IResource.FORCE) != 0;			boolean keepHistory = (updateFlags & IResource.KEEP_HISTORY) != 0;			// If the file is not in sync with the local file system and force			// is false,			// then signal that we have an error.			if (!force					&& !tree.isSynchronized(source, IResource.DEPTH_INFINITE)) {				String message = org.eclipse.core.internal.utils.Policy						.bind(								"localstore.resourceIsOutOfSync", source.getFullPath().toString()); //$NON-NLS-1$				IStatus status = new ResourceStatus(						IResourceStatus.OUT_OF_SYNC_LOCAL,						source.getFullPath(), message);				tree.failed(status);				return true; // we attempted even if we failed			}			// Add the file contents to the local history if requested by the			// user.			if (keepHistory)				tree.addToLocalHistory(source);			try {				OperationManager.getInstance().beginOperation(svnClient);				// add destination directory to version control if necessary				// see bug #15				if (!SVNWorkspaceRoot.getSVNFolderFor(destination.getParent())						.isManaged()) {					SVNTeamProvider provider = (SVNTeamProvider) RepositoryProvider							.getProvider(destination.getProject());					provider.add(new IResource[]{destination.getParent()},							IResource.DEPTH_ZERO, new NullProgressMonitor());				}				// force is set to true because when we rename (refactor) a				// java class, the file is modified before being moved				// A modified file cannot be moved without force				svnClient.move(source.getLocation().toFile(), destination						.getLocation().toFile(), true);				// movedFile must be done before endOperation because				// destination file must not already exist in the workspace				// resource tree.				tree.movedFile(source, destination);			} catch (SVNClientException e) {				throw SVNException.wrapException(e);			} catch (TeamException te) {				throw SVNException.wrapException(te);			} finally {				OperationManager.getInstance().endOperation();			}		} catch (SVNException e) {			tree.failed(new org.eclipse.core.runtime.Status(					org.eclipse.core.runtime.Status.ERROR, "SUBCLIPSE", 0,					"Error move file", e));			e.printStackTrace();			return true; // we attempted		} finally {			monitor.done();		}		return true;	}