diff options
author | Michael Valenta | 2007-05-29 14:54:54 +0000 |
---|---|---|
committer | Michael Valenta | 2007-05-29 14:54:54 +0000 |
commit | 06b03d62f1d5d710007b67810b568f260f31c4db (patch) | |
tree | e9d8c62dff2ae19087b2bf856696624e53fe4c3b /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/ChangeSetContentProvider.java | |
parent | 032463b942615404c3dcf0008b840ad62c174b66 (diff) | |
download | eclipse.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.java | 33 |
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(); |