summaryrefslogtreecommitdiff
path: root/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnChangeProviderContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/svn4idea/src/org/jetbrains/idea/svn/SvnChangeProviderContext.java')
-rw-r--r--plugins/svn4idea/src/org/jetbrains/idea/svn/SvnChangeProviderContext.java98
1 files changed, 48 insertions, 50 deletions
diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnChangeProviderContext.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnChangeProviderContext.java
index f7e5857569ff..716abbe1b20b 100644
--- a/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnChangeProviderContext.java
+++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/SvnChangeProviderContext.java
@@ -26,13 +26,13 @@ import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.svn.actions.AbstractShowPropertiesDiffAction;
+import org.jetbrains.idea.svn.info.Info;
+import org.jetbrains.idea.svn.lock.Lock;
+import org.jetbrains.idea.svn.status.Status;
+import org.jetbrains.idea.svn.status.StatusType;
import org.tmatesoft.svn.core.SVNException;
-import org.tmatesoft.svn.core.SVNLock;
import org.tmatesoft.svn.core.SVNURL;
-import org.tmatesoft.svn.core.wc.SVNInfo;
import org.tmatesoft.svn.core.wc.SVNRevision;
-import org.tmatesoft.svn.core.wc.SVNStatus;
-import org.tmatesoft.svn.core.wc.SVNStatusType;
import java.io.File;
import java.util.*;
@@ -44,7 +44,7 @@ class SvnChangeProviderContext implements StatusReceiver {
private List<SvnChangedFile> myCopiedFiles = null;
private final List<SvnChangedFile> myDeletedFiles = new ArrayList<SvnChangedFile>();
// for files moved in a subtree, which were the targets of merge (for instance).
- private final Map<String, SVNStatus> myTreeConflicted;
+ private final Map<String, Status> myTreeConflicted;
private Map<FilePath, String> myCopyFromURLs = null;
private final SvnVcs myVcs;
private final SvnBranchConfigurationManager myBranchConfigurationManager;
@@ -55,11 +55,11 @@ class SvnChangeProviderContext implements StatusReceiver {
myVcs = vcs;
myChangelistBuilder = changelistBuilder;
myProgress = progress;
- myTreeConflicted = new HashMap<String, SVNStatus>();
+ myTreeConflicted = new HashMap<String, Status>();
myBranchConfigurationManager = SvnBranchConfigurationManager.getInstance(myVcs.getProject());
}
- public void process(FilePath path, SVNStatus status) throws SVNException {
+ public void process(FilePath path, Status status) throws SVNException {
processStatusFirstPass(path, status);
}
@@ -83,12 +83,12 @@ class SvnChangeProviderContext implements StatusReceiver {
return myChangelistBuilder;
}
- public void reportTreeConflict(final SVNStatus status) {
+ public void reportTreeConflict(final Status status) {
myTreeConflicted.put(status.getFile().getAbsolutePath(), status);
}
@Nullable
- public SVNStatus getTreeConflictStatus(final File file) {
+ public Status getTreeConflictStatus(final File file) {
return myTreeConflicted.get(file.getAbsolutePath());
}
@@ -140,7 +140,7 @@ class SvnChangeProviderContext implements StatusReceiver {
return null;
}
- public void addCopiedFile(final FilePath filePath, final SVNStatus status, final String copyFromURL) {
+ public void addCopiedFile(final FilePath filePath, final Status status, final String copyFromURL) {
if (myCopiedFiles == null) {
myCopiedFiles = new ArrayList<SvnChangedFile>();
}
@@ -160,19 +160,19 @@ class SvnChangeProviderContext implements StatusReceiver {
//
- void processStatusFirstPass(final FilePath filePath, final SVNStatus status) throws SVNException {
+ void processStatusFirstPass(final FilePath filePath, final Status status) throws SVNException {
if (status == null) {
// external to wc
return;
}
if (status.getRemoteLock() != null) {
- final SVNLock lock = status.getRemoteLock();
+ final Lock lock = status.getRemoteLock();
myChangelistBuilder.processLogicallyLockedFolder(filePath.getVirtualFile(),
new LogicalLock(false, lock.getOwner(), lock.getComment(), lock.getCreationDate(),
lock.getExpirationDate()));
}
if (status.getLocalLock() != null) {
- final SVNLock lock = status.getLocalLock();
+ final Lock lock = status.getLocalLock();
myChangelistBuilder.processLogicallyLockedFolder(filePath.getVirtualFile(),
new LogicalLock(true, lock.getOwner(), lock.getComment(), lock.getCreationDate(),
lock.getExpirationDate()));
@@ -180,11 +180,11 @@ class SvnChangeProviderContext implements StatusReceiver {
if (filePath.isDirectory() && status.isLocked()) {
myChangelistBuilder.processLockedFolder(filePath.getVirtualFile());
}
- if ((SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_ADDED) || SVNStatusType.STATUS_MODIFIED.equals(status.getNodeStatus())) &&
+ if ((status.is(StatusType.STATUS_ADDED) || StatusType.STATUS_MODIFIED.equals(status.getNodeStatus())) &&
status.getCopyFromURL() != null) {
addCopiedFile(filePath, status, status.getCopyFromURL());
}
- else if (SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_DELETED)) {
+ else if (status.is(StatusType.STATUS_DELETED)) {
myDeletedFiles.add(new SvnChangedFile(filePath, status));
}
else {
@@ -198,7 +198,7 @@ class SvnChangeProviderContext implements StatusReceiver {
}
}
- void processStatus(final FilePath filePath, final SVNStatus status) throws SVNException {
+ void processStatus(final FilePath filePath, final Status status) throws SVNException {
WorkingCopyFormat format = myVcs.getWorkingCopyFormat(filePath.getIOFile());
if (!WorkingCopyFormat.UNKNOWN.equals(format) && format.less(WorkingCopyFormat.ONE_DOT_SEVEN)) {
loadEntriesFile(filePath);
@@ -207,38 +207,36 @@ class SvnChangeProviderContext implements StatusReceiver {
if (status != null) {
FileStatus fStatus = SvnStatusConvertor.convertStatus(status);
- final SVNStatusType statusType = status.getContentsStatus();
- final SVNStatusType propStatus = status.getPropertiesStatus();
- if (SvnVcs.svnStatusIsUnversioned(status) || SvnVcs.svnStatusIs(status, SVNStatusType.UNKNOWN)) {
+ final StatusType statusType = status.getContentsStatus();
+ final StatusType propStatus = status.getPropertiesStatus();
+ if (status.is(StatusType.STATUS_UNVERSIONED, StatusType.UNKNOWN)) {
final VirtualFile file = filePath.getVirtualFile();
if (file != null) {
myChangelistBuilder.processUnversionedFile(file);
}
}
- else if (SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_ADDED)) {
+ else if (status.is(StatusType.STATUS_ADDED)) {
myChangelistBuilder.processChangeInList(createChange(null, CurrentContentRevision.create(filePath), fStatus, status),
SvnUtil.getChangelistName(status), SvnVcs.getKey());
}
- else if (SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_CONFLICTED) ||
- SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_MODIFIED) ||
- SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_REPLACED) ||
- propStatus == SVNStatusType.STATUS_MODIFIED ||
- propStatus == SVNStatusType.STATUS_CONFLICTED) {
+ else if (status.is(StatusType.STATUS_CONFLICTED, StatusType.STATUS_MODIFIED, StatusType.STATUS_REPLACED) ||
+ propStatus == StatusType.STATUS_MODIFIED ||
+ propStatus == StatusType.STATUS_CONFLICTED) {
myChangelistBuilder.processChangeInList(
createChange(SvnContentRevision.createBaseRevision(myVcs, filePath, status), CurrentContentRevision.create(filePath), fStatus,
status), SvnUtil.getChangelistName(status), SvnVcs.getKey()
);
checkSwitched(filePath, myChangelistBuilder, status, fStatus);
}
- else if (SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_DELETED)) {
+ else if (status.is(StatusType.STATUS_DELETED)) {
myChangelistBuilder.processChangeInList(
createChange(SvnContentRevision.createBaseRevision(myVcs, filePath, status), null, fStatus, status),
SvnUtil.getChangelistName(status), SvnVcs.getKey());
}
- else if (SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_MISSING)) {
+ else if (status.is(StatusType.STATUS_MISSING)) {
myChangelistBuilder.processLocallyDeletedFile(createLocallyDeletedChange(filePath, status));
}
- else if (SvnVcs.svnStatusIs(status, SVNStatusType.STATUS_IGNORED)) {
+ else if (status.is(StatusType.STATUS_IGNORED)) {
if (!myVcs.isWcRoot(filePath)) {
myChangelistBuilder.processIgnoredFile(filePath.getVirtualFile());
}
@@ -246,7 +244,7 @@ class SvnChangeProviderContext implements StatusReceiver {
else if (status.isCopied()) {
//
}
- else if ((fStatus == FileStatus.NOT_CHANGED || fStatus == FileStatus.SWITCHED) && statusType != SVNStatusType.STATUS_NONE) {
+ else if ((fStatus == FileStatus.NOT_CHANGED || fStatus == FileStatus.SWITCHED) && statusType != StatusType.STATUS_NONE) {
VirtualFile file = filePath.getVirtualFile();
if (file != null && FileDocumentManager.getInstance().isFileModified(file)) {
myChangelistBuilder.processChangeInList(
@@ -266,10 +264,10 @@ class SvnChangeProviderContext implements StatusReceiver {
public void addModifiedNotSavedChange(final VirtualFile file) throws SVNException {
final FilePath filePath = new FilePathImpl(file);
- final SVNInfo svnInfo = myVcs.getInfo(file);
+ final Info svnInfo = myVcs.getInfo(file);
if (svnInfo != null) {
- final SVNStatus svnStatus = new SVNStatus();
+ final Status svnStatus = new Status();
svnStatus.setRevision(svnInfo.getRevision());
myChangelistBuilder.processChangeInList(
createChange(SvnContentRevision.createBaseRevision(myVcs, filePath, svnInfo.getRevision()), CurrentContentRevision.create(filePath),
@@ -278,7 +276,7 @@ class SvnChangeProviderContext implements StatusReceiver {
}
}
- private void checkSwitched(final FilePath filePath, final ChangelistBuilder builder, final SVNStatus status,
+ private void checkSwitched(final FilePath filePath, final ChangelistBuilder builder, final Status status,
final FileStatus convertedStatus) {
if (status.isSwitched() || (convertedStatus == FileStatus.SWITCHED)) {
final VirtualFile virtualFile = filePath.getVirtualFile();
@@ -322,8 +320,8 @@ class SvnChangeProviderContext implements StatusReceiver {
// seems here we can only have a tree conflict; which can be marked on either path (?)
// .. ok try to merge states
- Change createMovedChange(final ContentRevision before, final ContentRevision after, final SVNStatus copiedStatus,
- final SVNStatus deletedStatus) throws SVNException {
+ Change createMovedChange(final ContentRevision before, final ContentRevision after, final Status copiedStatus,
+ final Status deletedStatus) throws SVNException {
// todo no convertion needed for the contents status?
final ConflictedSvnChange conflictedSvnChange =
new ConflictedSvnChange(before, after, ConflictState.mergeState(getState(copiedStatus), getState(deletedStatus)),
@@ -340,13 +338,13 @@ class SvnChangeProviderContext implements StatusReceiver {
private Change createChange(final ContentRevision before,
final ContentRevision after,
final FileStatus fStatus,
- final SVNStatus svnStatus)
+ final Status svnStatus)
throws SVNException {
final ConflictedSvnChange conflictedSvnChange = new ConflictedSvnChange(before, after, correctContentsStatus(fStatus, svnStatus),
getState(svnStatus),
after == null ? before.getFile() : after.getFile());
if (svnStatus != null) {
- if (SVNStatusType.STATUS_DELETED.equals(svnStatus.getNodeStatus()) && !svnStatus.getRevision().isValid()) {
+ if (StatusType.STATUS_DELETED.equals(svnStatus.getNodeStatus()) && !svnStatus.getRevision().isValid()) {
conflictedSvnChange.setIsPhantom(true);
}
conflictedSvnChange.setBeforeDescription(svnStatus.getTreeConflict());
@@ -354,31 +352,31 @@ class SvnChangeProviderContext implements StatusReceiver {
return patchWithPropertyChange(conflictedSvnChange, svnStatus, null);
}
- private FileStatus correctContentsStatus(final FileStatus fs, final SVNStatus svnStatus) throws SVNException {
+ private FileStatus correctContentsStatus(final FileStatus fs, final Status svnStatus) throws SVNException {
//if (svnStatus.isSwitched()) return FileStatus.SWITCHED;
return fs;
//return SvnStatusConvertor.convertContentsStatus(svnStatus);
}
- private LocallyDeletedChange createLocallyDeletedChange(@NotNull FilePath filePath, final SVNStatus status) {
+ private LocallyDeletedChange createLocallyDeletedChange(@NotNull FilePath filePath, final Status status) {
return new SvnLocallyDeletedChange(filePath, getState(status));
}
- private Change patchWithPropertyChange(final Change change, final SVNStatus svnStatus, final SVNStatus deletedStatus)
+ private Change patchWithPropertyChange(final Change change, final Status svnStatus, final Status deletedStatus)
throws SVNException {
if (svnStatus == null) return change;
- final SVNStatusType propertiesStatus = svnStatus.getPropertiesStatus();
- if (SVNStatusType.STATUS_CONFLICTED.equals(propertiesStatus) || SVNStatusType.CHANGED.equals(propertiesStatus) ||
- SVNStatusType.STATUS_ADDED.equals(propertiesStatus) || SVNStatusType.STATUS_DELETED.equals(propertiesStatus) ||
- SVNStatusType.STATUS_MODIFIED.equals(propertiesStatus) || SVNStatusType.STATUS_REPLACED.equals(propertiesStatus) ||
- SVNStatusType.MERGED.equals(propertiesStatus)) {
+ final StatusType propertiesStatus = svnStatus.getPropertiesStatus();
+ if (StatusType.STATUS_CONFLICTED.equals(propertiesStatus) || StatusType.CHANGED.equals(propertiesStatus) ||
+ StatusType.STATUS_ADDED.equals(propertiesStatus) || StatusType.STATUS_DELETED.equals(propertiesStatus) ||
+ StatusType.STATUS_MODIFIED.equals(propertiesStatus) || StatusType.STATUS_REPLACED.equals(propertiesStatus) ||
+ StatusType.MERGED.equals(propertiesStatus)) {
final FilePath path = ChangesUtil.getFilePath(change);
final File ioFile = path.getIOFile();
final File beforeFile = deletedStatus != null ? deletedStatus.getFile() : ioFile;
- final String beforeList = SVNStatusType.STATUS_ADDED.equals(propertiesStatus) && deletedStatus == null ? null :
+ final String beforeList = StatusType.STATUS_ADDED.equals(propertiesStatus) && deletedStatus == null ? null :
AbstractShowPropertiesDiffAction.getPropertyList(myVcs, beforeFile, SVNRevision.BASE);
- final String afterList = SVNStatusType.STATUS_DELETED.equals(propertiesStatus) ? null :
+ final String afterList = StatusType.STATUS_DELETED.equals(propertiesStatus) ? null :
AbstractShowPropertiesDiffAction.getPropertyList(myVcs, ioFile, SVNRevision.WORKING);
// TODO: There are cases when status output is like (on newly added file with some properties that is locally deleted)
@@ -398,16 +396,16 @@ class SvnChangeProviderContext implements StatusReceiver {
return change;
}
- private ConflictState getState(@Nullable final SVNStatus svnStatus) {
+ private ConflictState getState(@Nullable final Status svnStatus) {
if (svnStatus == null) {
return ConflictState.none;
}
- final SVNStatusType propertiesStatus = svnStatus.getPropertiesStatus();
+ final StatusType propertiesStatus = svnStatus.getPropertiesStatus();
final boolean treeConflict = svnStatus.getTreeConflict() != null;
- final boolean textConflict = SVNStatusType.STATUS_CONFLICTED == svnStatus.getContentsStatus();
- final boolean propertyConflict = SVNStatusType.STATUS_CONFLICTED == propertiesStatus;
+ final boolean textConflict = StatusType.STATUS_CONFLICTED == svnStatus.getContentsStatus();
+ final boolean propertyConflict = StatusType.STATUS_CONFLICTED == propertiesStatus;
if (treeConflict) {
reportTreeConflict(svnStatus);
}