Merge remote-tracking branch 'origin/master'
[idea/community.git] / plugins / svn4idea / src / org / jetbrains / idea / svn / history / SvnChangeList.java
index f98d4de249fa17d95bdadacc938a97f7b055860f..0be7f65cb1f5ae3c473b288b9dce6c131122920b 100644 (file)
@@ -29,7 +29,9 @@ import com.intellij.openapi.vcs.AbstractVcs;
 import com.intellij.openapi.vcs.FilePath;
 import com.intellij.openapi.vcs.VcsException;
 import com.intellij.openapi.vcs.changes.*;
 import com.intellij.openapi.vcs.FilePath;
 import com.intellij.openapi.vcs.VcsException;
 import com.intellij.openapi.vcs.changes.*;
+import com.intellij.openapi.vcs.history.VcsRevisionNumber;
 import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList;
 import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList;
+import com.intellij.openapi.vcs.versionBrowser.VcsRevisionNumberAware;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.util.ConstantFunction;
 import com.intellij.util.NotNullFunction;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.util.ConstantFunction;
 import com.intellij.util.NotNullFunction;
@@ -56,13 +58,14 @@ import java.io.File;
 import java.io.IOException;
 import java.util.*;
 
 import java.io.IOException;
 import java.util.*;
 
-public class SvnChangeList implements CommittedChangeList {
+public class SvnChangeList implements CommittedChangeList, VcsRevisionNumberAware {
   private static final Logger LOG = Logger.getInstance("#org.jetbrains.idea.svn.history");
 
   private final SvnVcs myVcs;
   private final SvnRepositoryLocation myLocation;
   private String myRepositoryRoot;
   private long myRevision;
   private static final Logger LOG = Logger.getInstance("#org.jetbrains.idea.svn.history");
 
   private final SvnVcs myVcs;
   private final SvnRepositoryLocation myLocation;
   private String myRepositoryRoot;
   private long myRevision;
+  private VcsRevisionNumber myRevisionNumber;
   private String myAuthor;
   private Date myDate;
   private String myMessage;
   private String myAuthor;
   private Date myDate;
   private String myMessage;
@@ -88,7 +91,7 @@ public class SvnChangeList implements CommittedChangeList {
     final SvnChangeList sample = (SvnChangeList) lists.get(0);
     myVcs = sample.myVcs;
     myLocation = location;
     final SvnChangeList sample = (SvnChangeList) lists.get(0);
     myVcs = sample.myVcs;
     myLocation = location;
-    myRevision = sample.myRevision;
+    setRevision(sample.myRevision);
     myAuthor = sample.myAuthor;
     myDate = sample.myDate;
     myMessage = sample.myMessage;
     myAuthor = sample.myAuthor;
     myDate = sample.myDate;
     myMessage = sample.myMessage;
@@ -108,7 +111,7 @@ public class SvnChangeList implements CommittedChangeList {
   public SvnChangeList(SvnVcs vcs, @NotNull final SvnRepositoryLocation location, final LogEntry logEntry, String repositoryRoot) {
     myVcs = vcs;
     myLocation = location;
   public SvnChangeList(SvnVcs vcs, @NotNull final SvnRepositoryLocation location, final LogEntry logEntry, String repositoryRoot) {
     myVcs = vcs;
     myLocation = location;
-    myRevision = logEntry.getRevision();
+    setRevision(logEntry.getRevision());
     myAuthor = StringUtil.notNullize(logEntry.getAuthor());
     myDate = logEntry.getDate();
     myMessage = StringUtil.notNullize(logEntry.getMessage());
     myAuthor = StringUtil.notNullize(logEntry.getAuthor());
     myDate = logEntry.getDate();
     myMessage = StringUtil.notNullize(logEntry.getMessage());
@@ -171,6 +174,16 @@ public class SvnChangeList implements CommittedChangeList {
     return myDate;
   }
 
     return myDate;
   }
 
+  @Nullable
+  @Override
+  public VcsRevisionNumber getRevisionNumber() {
+    return myRevisionNumber;
+  }
+
+  private void setRevision(long revision) {
+    myRevision = revision;
+    myRevisionNumber = new SvnRevisionNumber(SVNRevision.create(revision));
+  }
 
   public Collection<Change> getChanges() {
     if (myListsHolder == null) {
 
   public Collection<Change> getChanges() {
     if (myListsHolder == null) {
@@ -658,7 +671,7 @@ public class SvnChangeList implements CommittedChangeList {
   private void readFromStream(@NotNull DataInput stream, final boolean supportsCopyFromInfo, final boolean supportsReplaced)
     throws IOException {
     myRepositoryRoot = stream.readUTF();
   private void readFromStream(@NotNull DataInput stream, final boolean supportsCopyFromInfo, final boolean supportsReplaced)
     throws IOException {
     myRepositoryRoot = stream.readUTF();
-    myRevision = stream.readLong();
+    setRevision(stream.readLong());
     myAuthor = stream.readUTF();
     myDate = new Date(stream.readLong());
     myMessage = stream.readUTF();
     myAuthor = stream.readUTF();
     myDate = new Date(stream.readLong());
     myMessage = stream.readUTF();