diff options
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.java | 99 |
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); } } } |