@NotNull
  @Override
  public String getPresentableRelativePath(@NotNull final ContentRevision fromRevision, @NotNull final ContentRevision toRevision) {
    final FilePath fromPath = fromRevision.getFile();
    final FilePath toPath = toRevision.getFile();

    final VirtualFile fromParent = VcsImplUtil.findValidParentAccurately(fromPath);
    final VirtualFile toParent = VcsImplUtil.findValidParentAccurately(toPath);

    if (fromParent != null && toParent != null) {
      String moduleResult = ReadAction.compute(() -> {
        if (myProject.isDisposed()) return null;
        final boolean hideExcludedFiles = Registry.is("ide.hide.excluded.files");
        ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myProject).getFileIndex();

        Module fromModule = fileIndex.getModuleForFile(fromParent, hideExcludedFiles);
        Module toModule = fileIndex.getModuleForFile(toParent, hideExcludedFiles);
        if (fromModule == null) return null;

        if (toModule == null || fromModule.equals(toModule)) {
          String relativePath = RelativePathCalculator.computeRelativePath(toPath.getPath(), fromPath.getPath(), true);
          if (relativePath != null) return FileUtilRt.toSystemDependentName(relativePath); //NON-NLS
        }

        VirtualFile fromContentRoot = fileIndex.getContentRootForFile(fromParent, hideExcludedFiles);
        if (fromContentRoot == null) return null;

        String relativePath = VfsUtilCore.getRelativePath(fromParent, fromContentRoot, File.separatorChar);
        if (relativePath == null) return null;

        if (!relativePath.isEmpty()) {
          relativePath += File.separatorChar;
        }
        if (!fromPath.getName().equals(toPath.getName())) {
          relativePath += fromPath.getName();
        }
        return getPresentableRelativePathFor(fromModule, fromContentRoot, relativePath);
      });
      if (moduleResult != null) return moduleResult;
    }

    return PlatformVcsPathPresenter.getPresentableRelativePath(toPath, fromPath);
  }
@NotNull
  @Override
  public String getPresentableRelativePath(@NotNull final ContentRevision fromRevision, @NotNull final ContentRevision toRevision)