From 7296a276552a20d3b1fc936fdd1d7238af5c3555 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Sun, 12 Aug 2012 17:29:03 +0400 Subject: [PATCH] GitLogRecord: fix revisions creation params Create multiple content revision with the correct (this) revision, not by taking the first of parents. --- .../git4idea/src/git4idea/GitContentRevision.java | 14 +++++++------- .../src/git4idea/history/GitLogRecord.java | 12 +++++++----- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/plugins/git4idea/src/git4idea/GitContentRevision.java b/plugins/git4idea/src/git4idea/GitContentRevision.java index 43dd52ca5f98..5ce16c9ea1fb 100644 --- a/plugins/git4idea/src/git4idea/GitContentRevision.java +++ b/plugins/git4idea/src/git4idea/GitContentRevision.java @@ -116,17 +116,17 @@ public class GitContentRevision implements ContentRevision { return myFile.hashCode() + myRevision.hashCode(); } - public static ContentRevision createMultipleParentsRevision(Project project, - final FilePath file, - final List revisions) throws VcsException { - final GitContentRevision contentRevision = createRevisionImpl(file, revisions.get(0), project, null); - if (revisions.size() == 1) { + public static ContentRevision createMultipleParentsRevision(@NotNull Project project, @NotNull final FilePath file, + @NotNull GitRevisionNumber currentRevision, + @NotNull final List parentRevisions) throws VcsException { + final GitContentRevision contentRevision = createRevisionImpl(file, currentRevision, project, null); + if (parentRevisions.size() == 1) { return contentRevision; } else { if (contentRevision instanceof GitBinaryContentRevision) { - return new GitBinaryMultipleContentsRevision(file, revisions, (GitBinaryContentRevision) contentRevision); + return new GitBinaryMultipleContentsRevision(file, parentRevisions, (GitBinaryContentRevision) contentRevision); } else { - return new GitMultipleContentsRevision(file, revisions, contentRevision); + return new GitMultipleContentsRevision(file, parentRevisions, contentRevision); } } } diff --git a/plugins/git4idea/src/git4idea/history/GitLogRecord.java b/plugins/git4idea/src/git4idea/history/GitLogRecord.java index dcc91c985a9e..a35d924ef9de 100644 --- a/plugins/git4idea/src/git4idea/history/GitLogRecord.java +++ b/plugins/git4idea/src/git4idea/history/GitLogRecord.java @@ -224,13 +224,14 @@ class GitLogRecord { status = FileStatus.MODIFIED; } final FilePath filePath = GitContentRevision.createPath(vcsRoot, path, false, true, true); - before = GitContentRevision.createMultipleParentsRevision(project, filePath, parentRevisions); + before = GitContentRevision.createMultipleParentsRevision(project, filePath, (GitRevisionNumber)thisRevision, parentRevisions); after = GitContentRevision.createRevision(vcsRoot, path, thisRevision, project, false, false, true); break; case DELETED: status = FileStatus.DELETED; final FilePath filePathDeleted = GitContentRevision.createPath(vcsRoot, path, true, true, true); - before = GitContentRevision.createMultipleParentsRevision(project, filePathDeleted, parentRevisions); + before = GitContentRevision.createMultipleParentsRevision(project, filePathDeleted, + (GitRevisionNumber)thisRevision, parentRevisions); after = null; break; case RENAMED: @@ -238,13 +239,14 @@ class GitLogRecord { String secondPath = statusInfo.getSecondPath(); final FilePath filePathAfterRename = GitContentRevision.createPath(vcsRoot, secondPath == null ? path : secondPath, false, false, true); - after = GitContentRevision.createMultipleParentsRevision(project, filePathAfterRename, parentRevisions); - before = GitContentRevision.createRevision(vcsRoot, path, thisRevision, project, true, true, true); + after = GitContentRevision.createMultipleParentsRevision(project, filePathAfterRename, + (GitRevisionNumber)thisRevision, parentRevisions); + before = GitContentRevision.createRevision(vcsRoot, path, parentRevisions.get(0), project, true, true, true); break; case TYPE_CHANGED: status = FileStatus.MODIFIED; final FilePath filePath2 = GitContentRevision.createPath(vcsRoot, path, false, true, true); - before = GitContentRevision.createMultipleParentsRevision(project, filePath2, parentRevisions); + before = GitContentRevision.createMultipleParentsRevision(project, filePath2, (GitRevisionNumber)thisRevision, parentRevisions); after = GitContentRevision.createRevision(vcsRoot, path, thisRevision, project, false, false, true); break; default: