[vcs] Remove obsolete Change#get/setMergeProvider

They are not used for a long time, and shouldn't be used.

Such a deletion is API breakage, but it already happened in new diff
anyway, since it doesn't take such merge provider into account.
This commit is contained in:
Kirill Likhodedov
2015-04-07 16:15:14 +03:00
parent 71f434b354
commit a64c74ece6
3 changed files with 26 additions and 102 deletions
@@ -18,7 +18,6 @@ package com.intellij.openapi.vcs.changes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Getter;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.FileStatus;
@@ -57,8 +56,6 @@ public class Change {
private boolean myIsReplaced;
private Type myType;
private final Map<String, Change> myOtherLayers;
// if null, vcs's is used. intended: for property conflict case
private Getter<MergeTexts> myMergeProvider;
public Change(@Nullable final ContentRevision beforeRevision, @Nullable final ContentRevision afterRevision) {
this(beforeRevision, afterRevision, convertStatus(beforeRevision, afterRevision));
@@ -79,14 +76,6 @@ public class Change {
return FileStatus.MODIFIED;
}
public Getter<MergeTexts> getMergeProvider() {
return myMergeProvider;
}
public void setMergeProvider(Getter<MergeTexts> mergeProvider) {
myMergeProvider = mergeProvider;
}
public void addAdditionalLayerElement(final String name, final Change change) {
myOtherLayers.put(name, change);
}
@@ -1,46 +0,0 @@
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.openapi.vcs.changes;
/**
* Created with IntelliJ IDEA.
* User: Irina.Chernushina
* Date: 2/14/12
* Time: 4:31 PM
*/
public class MergeTexts {
private final String myLeft;
private final String myRight;
private final String myBase;
public MergeTexts(String left, String right, String base) {
myLeft = left;
myRight = right;
myBase = base;
}
public String getLeft() {
return myLeft;
}
public String getRight() {
return myRight;
}
public String getBase() {
return myBase;
}
}
@@ -22,14 +22,12 @@ import com.intellij.openapi.diff.MergeRequest;
import com.intellij.openapi.diff.SimpleDiffRequest;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Getter;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vcs.AbstractVcs;
import com.intellij.openapi.vcs.FilePathImpl;
import com.intellij.openapi.vcs.VcsException;
import com.intellij.openapi.vcs.changes.Change;
import com.intellij.openapi.vcs.changes.ChangesUtil;
import com.intellij.openapi.vcs.changes.MergeTexts;
import com.intellij.openapi.vcs.history.VcsRevisionNumber;
import com.intellij.openapi.vcs.merge.MergeData;
import com.intellij.openapi.vfs.CharsetToolkit;
@@ -60,56 +58,39 @@ public class ConflictedDiffRequestPresentable implements DiffRequestPresentable
@Override
public MyResult step(DiffChainContext context) {
if (myChange.getAfterRevision() == null) return createErrorResult();
final Getter<MergeTexts> mergeProvider = myChange.getMergeProvider();
FileType type = myChange.getVirtualFile() != null ? myChange.getVirtualFile().getFileType() : null;
if (mergeProvider != null) {
// guaranteed text
final MergeTexts texts = mergeProvider.get();
if (texts == null) {
FilePathImpl filePath = new FilePathImpl(myFile);
if (filePath.getFileType().isBinary()) {
final boolean nowItIsText = ChangeDiffRequestPresentable.checkAssociate(myProject, filePath, context);
if (! nowItIsText) {
return createErrorResult();
}
}
final AbstractVcs vcs = ChangesUtil.getVcsForChange(myChange, myProject);
if (vcs == null || vcs.getMergeProvider() == null) {
return createErrorResult();
}
try {
final MergeData mergeData = vcs.getMergeProvider().loadRevisions(myFile);
if (mergeData == null) {
return createErrorResult();
}
final Charset charset = myFile.getCharset();
final MergeRequest request = DiffRequestFactory.getInstance()
.create3WayDiffRequest(texts.getLeft(), texts.getRight(), texts.getBase(), type, myProject, null, null);
.create3WayDiffRequest(CharsetToolkit.bytesToString(mergeData.CURRENT, charset),
CharsetToolkit.bytesToString(mergeData.LAST, charset),
CharsetToolkit.bytesToString(mergeData.ORIGINAL, charset),
type, myProject, null, null);
request.setWindowTitle(FileUtil.toSystemDependentName(myFile.getPresentableUrl()));
// todo titles?
request.setVersionTitles(new String[] {myChange.getAfterRevision().getRevisionNumber().asString(),
"Base Version", "Last Revision"});
VcsRevisionNumber lastRevisionNumber = mergeData.LAST_REVISION_NUMBER;
request.setVersionTitles(new String[]{myChange.getAfterRevision().getRevisionNumber().asString(),
"Base Version", lastRevisionNumber != null ? lastRevisionNumber.asString() : ""});
return new MyResult(request, DiffPresentationReturnValue.useRequest);
} else {
FilePathImpl filePath = new FilePathImpl(myFile);
if (filePath.getFileType().isBinary()) {
final boolean nowItIsText = ChangeDiffRequestPresentable.checkAssociate(myProject, filePath, context);
if (! nowItIsText) {
return createErrorResult();
}
}
final AbstractVcs vcs = ChangesUtil.getVcsForChange(myChange, myProject);
if (vcs == null || vcs.getMergeProvider() == null) {
return createErrorResult();
}
try {
final MergeData mergeData = vcs.getMergeProvider().loadRevisions(myFile);
if (mergeData == null) {
return createErrorResult();
}
final Charset charset = myFile.getCharset();
final MergeRequest request = DiffRequestFactory.getInstance()
.create3WayDiffRequest(CharsetToolkit.bytesToString(mergeData.CURRENT, charset),
CharsetToolkit.bytesToString(mergeData.LAST, charset),
CharsetToolkit.bytesToString(mergeData.ORIGINAL, charset),
type, myProject, null, null);
request.setWindowTitle(FileUtil.toSystemDependentName(myFile.getPresentableUrl()));
// todo titles?
VcsRevisionNumber lastRevisionNumber = mergeData.LAST_REVISION_NUMBER;
request.setVersionTitles(new String[]{myChange.getAfterRevision().getRevisionNumber().asString(),
"Base Version", lastRevisionNumber != null ? lastRevisionNumber.asString() : ""});
return new MyResult(request, DiffPresentationReturnValue.useRequest);
}
catch (VcsException e) {
LOG.info(e);
return createErrorResult();
}
}
catch (VcsException e) {
LOG.info(e);
return createErrorResult();
}
}