int segments = basePath.segmentCount();
    protected void updateCache(IPath basePath, ISVNStatus[] statuses) {        IWorkspace workspace = ResourcesPlugin.getWorkspace();        IWorkspaceRoot workspaceRoot = workspace.getRoot();                int segments = basePath.segmentCount();                for (int i = 0; i < statuses.length;i++) {            ISVNStatus status = statuses[i];            // we don't use :            //   IPath pathEclipse = new Path(status.getFile().getAbsolutePath());            // because IWorkspaceRoot.getContainerForLocation and IWorkspaceRoot.getFileForLocation             // are case-sensitive (see bug #147)                        IPath pathEclipse = basePath.append(new Path(status.getFile().getAbsolutePath()).removeFirstSegments(segments));                            IResource resourceStatus = null;                        // we can't test using file.isDirectory and file.isFile because both return false when            // the resource has been deleted            if (status.getNodeKind().equals(SVNNodeKind.DIR)) {                resourceStatus = workspaceRoot.getContainerForLocation(pathEclipse);            }            else {                resourceStatus = workspaceRoot.getFileForLocation(pathEclipse);            }                        if (resourceStatus != null) {                treeCacheRoot.addStatus(resourceStatus, new LocalResourceStatus(status));            }        }    }