summaryrefslogtreecommitdiff
path: root/plugins/svn4idea/src/org/jetbrains/idea/svn/diff/CmdDiffClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/svn4idea/src/org/jetbrains/idea/svn/diff/CmdDiffClient.java')
-rw-r--r--plugins/svn4idea/src/org/jetbrains/idea/svn/diff/CmdDiffClient.java26
1 files changed, 9 insertions, 17 deletions
diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/diff/CmdDiffClient.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/diff/CmdDiffClient.java
index 10890d18cd6d..497134727ee4 100644
--- a/plugins/svn4idea/src/org/jetbrains/idea/svn/diff/CmdDiffClient.java
+++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/diff/CmdDiffClient.java
@@ -30,21 +30,18 @@ import org.jetbrains.idea.svn.SvnStatusConvertor;
import org.jetbrains.idea.svn.SvnUtil;
import org.jetbrains.idea.svn.WorkingCopyFormat;
import org.jetbrains.idea.svn.api.BaseSvnClient;
+import org.jetbrains.idea.svn.api.NodeKind;
import org.jetbrains.idea.svn.commandLine.CommandExecutor;
import org.jetbrains.idea.svn.commandLine.CommandUtil;
import org.jetbrains.idea.svn.commandLine.SvnBindException;
import org.jetbrains.idea.svn.commandLine.SvnCommandName;
import org.jetbrains.idea.svn.history.SvnRepositoryContentRevision;
import org.jetbrains.idea.svn.status.SvnStatusHandler;
-import org.tmatesoft.svn.core.SVNNodeKind;
import org.tmatesoft.svn.core.wc.SVNRevision;
import org.tmatesoft.svn.core.wc2.SvnTarget;
import javax.xml.bind.JAXBException;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.*;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
@@ -64,7 +61,7 @@ public class CmdDiffClient extends BaseSvnClient implements DiffClient {
assertDirectory(target1);
WorkingCopyFormat format = WorkingCopyFormat.from(myFactory.createVersionClient().getVersion());
- if (!format.isOrGreater(WorkingCopyFormat.ONE_DOT_EIGHT)) {
+ if (format.less(WorkingCopyFormat.ONE_DOT_EIGHT)) {
throw new SvnBindException("Could not compare local file and remote url with executable for svn " + format);
}
}
@@ -104,8 +101,8 @@ public class CmdDiffClient extends BaseSvnClient implements DiffClient {
DiffInfo diffInfo = CommandUtil.parse(executor.getOutput(), DiffInfo.class);
List<Change> result = ContainerUtil.newArrayList();
- if (diffInfo != null && diffInfo.paths != null) {
- for (DiffPath path : diffInfo.paths.diffPaths) {
+ if (diffInfo != null) {
+ for (DiffPath path : diffInfo.diffPaths) {
result.add(createChange(target1, target2, path));
}
}
@@ -194,20 +191,15 @@ public class CmdDiffClient extends BaseSvnClient implements DiffClient {
@XmlRootElement(name = "diff")
public static class DiffInfo {
- @XmlElement(name = "paths")
- public DiffPaths paths;
- }
-
- public static class DiffPaths {
-
+ @XmlElementWrapper(name = "paths")
@XmlElement(name = "path")
public List<DiffPath> diffPaths = new ArrayList<DiffPath>();
}
public static class DiffPath {
- @XmlAttribute(name = "kind")
- public String kind;
+ @XmlAttribute(name = "kind", required = true)
+ public NodeKind kind;
@XmlAttribute(name = "props")
public String propertiesStatus;
@@ -219,7 +211,7 @@ public class CmdDiffClient extends BaseSvnClient implements DiffClient {
public String path;
public boolean isDirectory() {
- return SVNNodeKind.DIR.equals(SVNNodeKind.parseKind(kind));
+ return kind.isDirectory();
}
}
}