Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2007-05-29 14:54:54 +0000
committerMichael Valenta2007-05-29 14:54:54 +0000
commit06b03d62f1d5d710007b67810b568f260f31c4db (patch)
treee9d8c62dff2ae19087b2bf856696624e53fe4c3b /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java
parent032463b942615404c3dcf0008b840ad62c174b66 (diff)
downloadeclipse.platform.team-06b03d62f1d5d710007b67810b568f260f31c4db.tar.gz
eclipse.platform.team-06b03d62f1d5d710007b67810b568f260f31c4db.tar.xz
eclipse.platform.team-06b03d62f1d5d710007b67810b568f260f31c4db.zip
Bug 173138 [Change Sets] Outgoing changes lost after Apply Patch/Commit
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java33
1 files changed, 20 insertions, 13 deletions
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 e436ffa7e..d9e893b64 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
@@ -201,9 +201,12 @@ public class ChangeSetContentProvider extends ResourceModelContentProvider imple
ChangeSet set = addedSets[i];
handleSetAddition(set);
}
- for (int i = 0; i < removedSets.length; i++) {
- ChangeSet set = removedSets[i];
- handleSetRemoval(set);
+ if (removedSets.length > 0) {
+ // If sets were removed, we reset the unassigned set.
+ // We need to do this because it is possible that diffs were
+ // removed from the set before the set itself was removed.
+ // See bug 173138
+ addAllUnassignedToUnassignedSet();
}
for (int i = 0; i < changedSets.length; i++) {
ChangeSet set = changedSets[i];
@@ -350,19 +353,23 @@ public class ChangeSetContentProvider extends ResourceModelContentProvider imple
if (unassignedDiffs == null) {
unassignedDiffs = new UnassignedDiffChangeSet(CVSUIMessages.ChangeSetContentProvider_0);
unassignedDiffs.getDiffTree().addDiffChangeListener(diffTreeListener);
- IResourceDiffTree allChanges = getContext().getDiffTree();
- final List diffs = new ArrayList();
- allChanges.accept(ResourcesPlugin.getWorkspace().getRoot().getFullPath(), new IDiffVisitor() {
- public boolean visit(IDiff diff) {
- if (!isContainedInSet(diff))
- diffs.add(diff);
- return true;
- }
- }, IResource.DEPTH_INFINITE);
- unassignedDiffs.add((IDiff[]) diffs.toArray(new IDiff[diffs.size()]));
+ addAllUnassignedToUnassignedSet();
}
return unassignedDiffs;
}
+
+ private void addAllUnassignedToUnassignedSet() {
+ IResourceDiffTree allChanges = getContext().getDiffTree();
+ final List diffs = new ArrayList();
+ allChanges.accept(ResourcesPlugin.getWorkspace().getRoot().getFullPath(), new IDiffVisitor() {
+ public boolean visit(IDiff diff) {
+ if (!isContainedInSet(diff))
+ diffs.add(diff);
+ return true;
+ }
+ }, IResource.DEPTH_INFINITE);
+ unassignedDiffs.add((IDiff[]) diffs.toArray(new IDiff[diffs.size()]));
+ }
private ResourceDiffTree getTheRest() {
return (ResourceDiffTree)getUnassignedSet().getDiffTree();

Back to the top