void (@NotNull VirtualFile root, @Nullable FilePath revisionPath, @NotNull Hash revisionHash, @NotNull FilePath localPath) { if (localPath.isDirectory()) { showDiffForPaths(root, Collections.singleton(localPath), revisionHash, null); } else { DiffRequestProducer requestProducer = SimpleDiffRequestProducer.create(localPath, () -> { DiffContent leftDiffContent = createDiffContent(root, revisionPath, revisionHash); DiffContent rightDiffContent = createCurrentDiffContent(localPath); return new SimpleDiffRequest(getTitle(revisionPath, localPath, DIFF_TITLE_RENAME_SEPARATOR), leftDiffContent, rightDiffContent, revisionHash.asString(), GitBundle.message("git.log.diff.handler.local.version.content.title")); }); SimpleDiffRequestChain chain = SimpleDiffRequestChain.fromProducer(requestProducer); UIUtil.invokeLaterIfNeeded(() -> DiffManager.getInstance().showDiff(myProject, chain, DiffDialogHints.DEFAULT)); } }