Source:
<code>public boolean visit(IResourceDelta delta) throws CoreException { final IResource resource = delta.getResource(); if (resource.getType() == IResource.ROOT) { return true; } if (resource.getType() == IResource.PROJECT) { if (!ResourceUtil.isSharedWithGit(resource)) { return false; } GitProjectData gitData = GitProjectData.get((IProject) resource); if (gitData == null) { return false; } RepositoryMapping mapping = gitData.getRepositoryMapping(resource); if (mapping == null || !gitData.hasNestedRepositories() && mapping.getRepository() != repository) { return false; } <START> return true; <END> } if (resource.getType() == IResource.FOLDER) { GitProjectData gitData = GitProjectData.get(resource.getProject()); if (gitData == null) { return false; } RepositoryMapping mapping = gitData.getRepositoryMapping(resource); if (mapping == null || !gitData.isProtected(resource) && mapping.getRepository() != repository) { return false; } if (delta.getKind() == IResourceDelta.ADDED) { String repoRelativePath = mapping.getRepoRelativePath(resource); if (repoRelativePath == null) { return false; } if (!repoRelativePath.isEmpty()) { String path = repoRelativePath + "/"; if (isIgnoredInOldIndex(path)) { return true; } filesToUpdate.add(path); resourcesToUpdate.add(resource); } } return true; } RepositoryMapping mapping = RepositoryMapping.getMapping(resource); if (mapping == null || mapping.getRepository() != repository) { return false; } if (delta.getKind() == IResourceDelta.CHANGED && (delta.getFlags() & INTERESTING_CHANGES) == 0) { return false; } if (resource.getName().equals(Constants.DOT_GIT_IGNORE)) { gitIgnoreChanged = true; return false; } String repoRelativePath = mapping.getRepoRelativePath(resource); if (repoRelativePath == null) { resourcesToUpdate.add(resource); return true; } if (isIgnoredInOldIndex(repoRelativePath)) { return false; } filesToUpdate.add(repoRelativePath); resourcesToUpdate.add(resource); return true; }</code><technical_language>This removal need _extensive_ tests involving linked resources in general</technical_language>

Target:
public boolean visit(IResourceDelta delta) throws CoreException { final IResource resource = delta.getResource(); if (resource.getType() == IResource.ROOT) { return true; } if (resource.getType() == IResource.PROJECT) { if (!ResourceUtil.isSharedWithGit(resource)) { return false; } GitProjectData gitData = GitProjectData.get((IProject) resource); if (gitData == null) { return false; } RepositoryMapping mapping = gitData.getRepositoryMapping(resource); if (mapping == null || !gitData.hasInnerRepositories() && mapping.getRepository() != repository) { return false; } return true; } if (resource.getType() == IResource.FOLDER) { GitProjectData gitData = GitProjectData.get(resource.getProject()); if (gitData == null) { return false; } RepositoryMapping mapping = gitData.getRepositoryMapping(resource); if (mapping == null || !gitData.isProtected(resource) && mapping.getRepository() != repository) { return false; } if (delta.getKind() == IResourceDelta.ADDED) { String repoRelativePath = mapping.getRepoRelativePath(resource); if (repoRelativePath == null) { return false; } if (!repoRelativePath.isEmpty()) { String path = repoRelativePath + "/"; if (isIgnoredInOldIndex(path)) { return true; } filesToUpdate.add(path); resourcesToUpdate.add(resource); } } return true; } RepositoryMapping mapping = RepositoryMapping.getMapping(resource); if (mapping == null || mapping.getRepository() != repository) { return false; } if (delta.getKind() == IResourceDelta.CHANGED && (delta.getFlags() & INTERESTING_CHANGES) == 0) { return false; } if (resource.getName().equals(Constants.DOT_GIT_IGNORE)) { gitIgnoreChanged = true; return false; } String repoRelativePath = mapping.getRepoRelativePath(resource); if (repoRelativePath == null) { resourcesToUpdate.add(resource); return true; } if (isIgnoredInOldIndex(repoRelativePath)) { return false; } filesToUpdate.add(repoRelativePath); resourcesToUpdate.add(resource); return true; }