summaryrefslogtreecommitdiff
path: root/plugins/svn4idea/src/org/jetbrains/idea/svn/treeConflict/SvnTreeConflictResolver.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/svn4idea/src/org/jetbrains/idea/svn/treeConflict/SvnTreeConflictResolver.java')
-rw-r--r--plugins/svn4idea/src/org/jetbrains/idea/svn/treeConflict/SvnTreeConflictResolver.java99
1 files changed, 47 insertions, 52 deletions
diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/treeConflict/SvnTreeConflictResolver.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/treeConflict/SvnTreeConflictResolver.java
index c637ce243981..584666c7e86a 100644
--- a/plugins/svn4idea/src/org/jetbrains/idea/svn/treeConflict/SvnTreeConflictResolver.java
+++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/treeConflict/SvnTreeConflictResolver.java
@@ -27,8 +27,13 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.svn.SvnRevisionNumber;
import org.jetbrains.idea.svn.SvnVcs;
+import org.jetbrains.idea.svn.api.Depth;
+import org.jetbrains.idea.svn.commandLine.SvnBindException;
+import org.jetbrains.idea.svn.conflict.TreeConflictDescription;
+import org.jetbrains.idea.svn.status.Status;
import org.jetbrains.idea.svn.status.StatusClient;
-import org.tmatesoft.svn.core.SVNDepth;
+import org.jetbrains.idea.svn.status.StatusConsumer;
+import org.jetbrains.idea.svn.status.StatusType;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.wc.*;
@@ -57,7 +62,7 @@ public class SvnTreeConflictResolver {
myDirtyScopeManager = VcsDirtyScopeManager.getInstance(myVcs.getProject());
}
- public void resolveSelectTheirsFull(SVNTreeConflictDescription d) throws VcsException {
+ public void resolveSelectTheirsFull(TreeConflictDescription d) throws VcsException {
final LocalHistory localHistory = LocalHistory.getInstance();
localHistory.putSystemLabel(myVcs.getProject(), "Before accepting theirs for " + TreeConflictRefreshablePanel.filePath(myPath));
try {
@@ -84,74 +89,64 @@ public class SvnTreeConflictResolver {
private void revertAdditional() throws VcsException {
if (myRevertPath == null) return;
final File ioFile = myRevertPath.getIOFile();
- try {
- final SVNStatus status = myVcs.getFactory(ioFile).createStatusClient().doStatus(ioFile, false);
- myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, SVNDepth.INFINITY, null);
- if (SVNStatusType.STATUS_ADDED.equals(status.getNodeStatus())) {
- FileUtil.delete(ioFile);
- }
- }
- catch (SVNException e) {
- throw new VcsException(e);
+ final Status status = myVcs.getFactory(ioFile).createStatusClient().doStatus(ioFile, false);
+ myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, Depth.INFINITY, null);
+ if (StatusType.STATUS_ADDED.equals(status.getNodeStatus())) {
+ FileUtil.delete(ioFile);
}
pathDirty(myRevertPath);
}
- public void resolveSelectMineFull(SVNTreeConflictDescription d) throws VcsException {
+ public void resolveSelectMineFull(TreeConflictDescription d) throws VcsException {
final File ioFile = myPath.getIOFile();
- myVcs.getFactory(ioFile).createConflictClient().resolve(ioFile, SVNDepth.INFINITY, true, true, true);
+ myVcs.getFactory(ioFile).createConflictClient().resolve(ioFile, Depth.INFINITY, true, true, true);
pathDirty(myPath);
}
private void updatetoTheirsFull() throws VcsException {
- try {
- final File ioFile = myPath.getIOFile();
- SVNStatus status = myVcs.getFactory(ioFile).createStatusClient().doStatus(ioFile, false);
- if (myCommittedRevision == null) {
- myCommittedRevision = new SvnRevisionNumber(status.getCommittedRevision());
- }
- if (status == null || SVNStatusType.STATUS_UNVERSIONED.equals(status.getNodeStatus())) {
- myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, SVNDepth.INFINITY, null);
- updateIoFile(ioFile, SVNRevision.HEAD);
- return;
- } else if (SVNStatusType.STATUS_ADDED.equals(status.getNodeStatus())) {
- myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, SVNDepth.INFINITY, null);
- updateIoFile(ioFile, SVNRevision.HEAD);
- FileUtil.delete(ioFile);
- return;
- } else {
- final Set<File> usedToBeAdded = new HashSet<File>();
- if (myPath.isDirectory()) {
- StatusClient statusClient = myVcs.getFactory(ioFile).createStatusClient();
- statusClient.doStatus(ioFile, SVNRevision.UNDEFINED, SVNDepth.INFINITY, false, false, false, false,
- new ISVNStatusHandler() {
- @Override
- public void handleStatus(SVNStatus status) throws SVNException {
- if (status != null && SVNStatusType.STATUS_ADDED.equals(status.getNodeStatus())) {
- usedToBeAdded.add(status.getFile());
- }
+ final File ioFile = myPath.getIOFile();
+ Status status = myVcs.getFactory(ioFile).createStatusClient().doStatus(ioFile, false);
+ if (myCommittedRevision == null) {
+ myCommittedRevision = new SvnRevisionNumber(status.getCommittedRevision());
+ }
+ if (status == null || StatusType.STATUS_UNVERSIONED.equals(status.getNodeStatus())) {
+ myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, Depth.INFINITY, null);
+ updateIoFile(ioFile, SVNRevision.HEAD);
+ return;
+ } else if (StatusType.STATUS_ADDED.equals(status.getNodeStatus())) {
+ myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, Depth.INFINITY, null);
+ updateIoFile(ioFile, SVNRevision.HEAD);
+ FileUtil.delete(ioFile);
+ return;
+ } else {
+ final Set<File> usedToBeAdded = new HashSet<File>();
+ if (myPath.isDirectory()) {
+ StatusClient statusClient = myVcs.getFactory(ioFile).createStatusClient();
+ statusClient.doStatus(ioFile, SVNRevision.UNDEFINED, Depth.INFINITY, false, false, false, false,
+ new StatusConsumer() {
+ @Override
+ public void consume(Status status) throws SVNException {
+ if (status != null && StatusType.STATUS_ADDED.equals(status.getNodeStatus())) {
+ usedToBeAdded.add(status.getFile());
}
- }, null);
- }
- myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, SVNDepth.INFINITY, null);
- for (File wasAdded : usedToBeAdded) {
- FileUtil.delete(wasAdded);
- }
- updateIoFile(ioFile, SVNRevision.HEAD);
+ }
+ }, null);
}
- }
- catch (SVNException e1) {
- throw new VcsException(e1);
+ myVcs.getFactory(ioFile).createRevertClient().revert(new File[]{ioFile}, Depth.INFINITY, null);
+ for (File wasAdded : usedToBeAdded) {
+ FileUtil.delete(wasAdded);
+ }
+ updateIoFile(ioFile, SVNRevision.HEAD);
}
}
- private void updateIoFile(@NotNull File ioFile, @NotNull final SVNRevision revision) throws SVNException {
+ private void updateIoFile(@NotNull File ioFile, @NotNull final SVNRevision revision) throws SvnBindException {
if (! ioFile.exists()) {
File parent = ioFile.getParentFile();
- myVcs.getFactory(parent).createUpdateClient().doUpdate(parent, revision, SVNDepth.INFINITY, true, false);
+ myVcs.getFactory(parent).createUpdateClient().doUpdate(parent, revision, Depth.INFINITY, true, false);
} else {
- myVcs.getFactory(ioFile).createUpdateClient().doUpdate(ioFile, revision, SVNDepth.INFINITY, false, false);
+ myVcs.getFactory(ioFile).createUpdateClient().doUpdate(ioFile, revision, Depth.INFINITY, false, false);
}
}
}