diff options
Diffstat (limited to 'platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java')
-rw-r--r-- | platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java index a1fa2baeb1d2..172edc75d02a 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/history/FileHistoryPanelImpl.java @@ -56,6 +56,7 @@ import com.intellij.openapi.vcs.ui.ReplaceFileConfirmationDialog; import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList; import com.intellij.openapi.vcs.vfs.VcsFileSystem; import com.intellij.openapi.vcs.vfs.VcsVirtualFile; +import com.intellij.openapi.vcs.vfs.VcsVirtualFolder; import com.intellij.openapi.vfs.ReadonlyStatusHandler; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.*; @@ -1123,8 +1124,9 @@ public class FileHistoryPanelImpl extends PanelWithActionsAndCloseButton { VcsFileRevision revision = e.getData( VcsDataKeys.VCS_FILE_REVISION ); final Boolean nonLocal = e.getData(VcsDataKeys.VCS_NON_LOCAL_HISTORY_SESSION); - FileType fileType = revVFile == null ? null : revVFile.getFileType(); - boolean enabled = revision != null && revVFile != null && !fileType.isBinary() && ! Boolean.TRUE.equals(nonLocal); + boolean isFile = revVFile != null && !revVFile.isDirectory(); + FileType fileType = isFile ? revVFile.getFileType() : null; + boolean enabled = revision != null && isFile && !fileType.isBinary() && !Boolean.TRUE.equals(nonLocal); if (enabled) { final ProjectLevelVcsManager plVcsManager = ProjectLevelVcsManager.getInstance(myVcs.getProject()); @@ -1309,7 +1311,9 @@ public class FileHistoryPanelImpl extends PanelWithActionsAndCloseButton { private VirtualFile createVirtualFileForRevision(VcsFileRevision revision) { if (!myRevisionToVirtualFile.containsKey(revision)) { FilePath filePath = (revision instanceof VcsFileRevisionEx ? ((VcsFileRevisionEx)revision).getPath() : myFilePath); - myRevisionToVirtualFile.put(revision, new VcsVirtualFile(filePath.getPath(), revision, VcsFileSystem.getInstance())); + myRevisionToVirtualFile.put(revision, filePath.isDirectory() + ? new VcsVirtualFolder(filePath.getPath(), null, VcsFileSystem.getInstance()) + : new VcsVirtualFile(filePath.getPath(), revision, VcsFileSystem.getInstance())); } return myRevisionToVirtualFile.get(revision); } |