diff options
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/MergeSubscriberContext.java')
-rw-r--r-- | bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/MergeSubscriberContext.java | 65 |
1 files changed, 28 insertions, 37 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/MergeSubscriberContext.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/MergeSubscriberContext.java index b390c93de..d7b903203 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/MergeSubscriberContext.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/mappings/MergeSubscriberContext.java @@ -51,26 +51,20 @@ public class MergeSubscriberContext extends CVSSubscriberMergeContext { */ @Override public void markAsMerged(final IDiff diff, boolean inSyncHint, IProgressMonitor monitor) throws CoreException { - run(new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - ((CVSMergeSubscriber)getSubscriber()).merged(new IResource[] { getDiffTree().getResource(diff)}); - } - }, getMergeRule(diff), IResource.NONE, monitor); + run(monitor1 -> ((CVSMergeSubscriber) getSubscriber()) + .merged(new IResource[] { getDiffTree().getResource(diff) }), getMergeRule(diff), IResource.NONE, + monitor); } @Override public void markAsMerged(final IDiff[] diffs, boolean inSyncHint, IProgressMonitor monitor) throws CoreException { - run(new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - List result = new ArrayList(); - for (int i = 0; i < diffs.length; i++) { - IDiff diff = diffs[i]; - result.add(getDiffTree().getResource(diff)); - } - ((CVSMergeSubscriber)getSubscriber()).merged((IResource[]) result.toArray(new IResource[result.size()])); + run(monitor1 -> { + List result = new ArrayList(); + for (int i = 0; i < diffs.length; i++) { + IDiff diff = diffs[i]; + result.add(getDiffTree().getResource(diff)); } + ((CVSMergeSubscriber) getSubscriber()).merged((IResource[]) result.toArray(new IResource[result.size()])); }, getMergeRule(diffs), IResource.NONE, monitor); } @@ -88,31 +82,28 @@ public class MergeSubscriberContext extends CVSSubscriberMergeContext { @Override public IStatus merge(final IDiff diff, final boolean ignoreLocalChanges, IProgressMonitor monitor) throws CoreException { final IStatus[] status = new IStatus[] { Status.OK_STATUS }; - run(new IWorkspaceRunnable() { - @Override - public void run(IProgressMonitor monitor) throws CoreException { - IThreeWayDiff currentDiff = (IThreeWayDiff)getSubscriber().getDiff(getDiffTree().getResource(diff)); - if (!MergeSubscriberContext.this.equals(currentDiff, (IThreeWayDiff)diff)) { - throw new CVSException(NLS.bind(CVSUIMessages.CVSMergeContext_1, diff.getPath())); - } - status[0] = MergeSubscriberContext.super.merge(diff, ignoreLocalChanges, monitor); - if (status[0].isOK()) { - IResource resource = ResourceDiffTree.getResourceFor(diff); - if (resource.getType() == IResource.FILE && resource.exists() && diff instanceof IThreeWayDiff) { - IThreeWayDiff twd = (IThreeWayDiff) diff; - if (twd.getKind() == IDiff.ADD && twd.getDirection() == IThreeWayDiff.INCOMING) { - IFileRevision remote = Utils.getRemote(diff); - IResourceVariant variant = Adapters.adapt(remote, IResourceVariant.class); - byte[] syncBytes = variant.asBytes(); - MutableResourceSyncInfo info = new MutableResourceSyncInfo(resource.getName(), ResourceSyncInfo.ADDED_REVISION); - info.setKeywordMode(ResourceSyncInfo.getKeywordMode(syncBytes)); - info.setTag(getTag(resource.getParent())); - CVSWorkspaceRoot.getCVSFileFor((IFile)resource).setSyncInfo(info, ICVSFile.DIRTY); - } + run(monitor1 -> { + IThreeWayDiff currentDiff = (IThreeWayDiff) getSubscriber().getDiff(getDiffTree().getResource(diff)); + if (!MergeSubscriberContext.this.equals(currentDiff, (IThreeWayDiff) diff)) { + throw new CVSException(NLS.bind(CVSUIMessages.CVSMergeContext_1, diff.getPath())); + } + status[0] = MergeSubscriberContext.super.merge(diff, ignoreLocalChanges, monitor1); + if (status[0].isOK()) { + IResource resource = ResourceDiffTree.getResourceFor(diff); + if (resource.getType() == IResource.FILE && resource.exists() && diff instanceof IThreeWayDiff) { + IThreeWayDiff twd = (IThreeWayDiff) diff; + if (twd.getKind() == IDiff.ADD && twd.getDirection() == IThreeWayDiff.INCOMING) { + IFileRevision remote = Utils.getRemote(diff); + IResourceVariant variant = Adapters.adapt(remote, IResourceVariant.class); + byte[] syncBytes = variant.asBytes(); + MutableResourceSyncInfo info = new MutableResourceSyncInfo(resource.getName(), + ResourceSyncInfo.ADDED_REVISION); + info.setKeywordMode(ResourceSyncInfo.getKeywordMode(syncBytes)); + info.setTag(getTag(resource.getParent())); + CVSWorkspaceRoot.getCVSFileFor((IFile) resource).setSyncInfo(info, ICVSFile.DIRTY); } } } - }, getMergeRule(diff), IWorkspace.AVOID_UPDATE, monitor); return status[0]; } |