IDEA-144511 patch: do not report "Unknown File Type" for new files
authorAleksey Pivovarov <AMPivovarov@gmail.com>
Mon, 31 Aug 2015 10:01:00 +0000 (13:01 +0300)
committerAleksey Pivovarov <AMPivovarov@gmail.com>
Mon, 31 Aug 2015 10:07:17 +0000 (13:07 +0300)
platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/DiffShelvedChangesAction.java

index 768e267dc2d0dbcb4f8cab89157bc81148dfe009..766e2d6ee844adfc0d04b6ac0fb7c9fb0e4903ca 100644 (file)
@@ -170,10 +170,10 @@ public class DiffShelvedChangesAction extends AnAction implements DumbAware {
     for (final ShelvedChange shelvedChange : changesFromFirstList) {
       final String beforePath = shelvedChange.getBeforePath();
       final String afterPath = shelvedChange.getAfterPath();
+      final boolean isNewFile = FileStatus.ADDED.equals(shelvedChange.getFileStatus());
 
-      final VirtualFile file;
+      final VirtualFile file; // isNewFile -> parent directory, !isNewFile -> file
       try {
-        boolean isNewFile = FileStatus.ADDED.equals(shelvedChange.getFileStatus());
         file = ApplyFilePatchBase.findPatchTarget(patchContext, beforePath, afterPath, isNewFile);
         if (!isNewFile && (file == null || !file.exists())) throw new FileNotFoundException(beforePath);
       }
@@ -194,7 +194,7 @@ public class DiffShelvedChangesAction extends AnAction implements DumbAware {
         @Override
         public DiffRequest process(@NotNull UserDataHolder context, @NotNull ProgressIndicator indicator)
           throws DiffRequestProducerException, ProcessCanceledException {
-          if (file != null && file.getFileType() == UnknownFileType.INSTANCE) {
+          if (!isNewFile && file.getFileType() == UnknownFileType.INSTANCE) {
             return new UnknownFileTypeDiffRequest(file, getName());
           }