From dd87fe5a6aad14db3aaa2c023c09408db7d5287b Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 18 Dec 2020 15:11:39 +0100 Subject: [PATCH] IDEA-CR-69839 followup: change the equals algorithm - handle comparing "C:/temp/file.txt" to "c:/temp/file.txt" correctly GitOrigin-RevId: a5ecc20498f0ac53e6fdda4d63c42dfb15aae145 --- .../src/com/intellij/openapi/vcs/LocalFilePath.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/src/com/intellij/openapi/vcs/LocalFilePath.java b/platform/platform-api/src/com/intellij/openapi/vcs/LocalFilePath.java index d01a0ffdd3fa..24a4afce9572 100644 --- a/platform/platform-api/src/com/intellij/openapi/vcs/LocalFilePath.java +++ b/platform/platform-api/src/com/intellij/openapi/vcs/LocalFilePath.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.SystemIndependent; import java.io.File; import java.nio.charset.Charset; import java.nio.file.Path; +import java.util.Objects; public class LocalFilePath implements FilePath { @NotNull @@ -57,7 +58,9 @@ public class LocalFilePath implements FilePath { if (!CaseInsensitiveStringHashingStrategy.INSTANCE.equals(myPath, path.myPath)) return false; // make sure to not query (expensive) getVirtualFile() until it's absolutely necessary, e.g. we encountered two file paths differ by case only VirtualFile file = getVirtualFile(); - return file == null ? !SystemInfo.isFileSystemCaseSensitive : !file.isCaseSensitive(); + VirtualFile oFile = path.getVirtualFile(); + if (file == null && oFile == null) return !SystemInfo.isFileSystemCaseSensitive; + return Objects.equals(file, oFile); } @Override