Too many refreshes occur initializing the content provider
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java
index f8af4ec..d0545b9 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java
@@ -340,13 +340,18 @@
theRest = new ResourceDiffTree();
theRest.addDiffChangeListener(diffTreeListener);
IResourceDiffTree allChanges = getContext().getDiffTree();
- allChanges.accept(ResourcesPlugin.getWorkspace().getRoot().getFullPath(), new IDiffVisitor() {
- public boolean visit(IDiff diff) {
- if (!isContainedInSet(diff))
- theRest.add(diff);
- return true;
- }
- }, IResource.DEPTH_INFINITE);
+ try {
+ theRest.beginInput();
+ allChanges.accept(ResourcesPlugin.getWorkspace().getRoot().getFullPath(), new IDiffVisitor() {
+ public boolean visit(IDiff diff) {
+ if (!isContainedInSet(diff))
+ theRest.add(diff);
+ return true;
+ }
+ }, IResource.DEPTH_INFINITE);
+ } finally {
+ theRest.endInput(null);
+ }
}
return theRest;
}