public static void loadAndShowCommittedChangesDetails(@NotNull Project project,
                                                        @NotNull VcsRevisionNumber revision,
                                                        @NotNull FilePath filePath,
                                                        boolean showAsTab,
                                                        @NotNull CommittedChangeListProvider changelistProvider) {
    final String title = VcsBundle.message("paths.affected.in.revision", VcsUtil.getShortRevisionString(revision));
    final BackgroundableActionLock lock = BackgroundableActionLock.getLock(project, VcsBackgroundableActions.COMMITTED_CHANGES_DETAILS,
                                                                           revision, filePath.getPath());

    if (ChangeListViewerDialog.tryFocusExistingDialog(lock)) return;

    LoadingCommittedChangeListPanel loadingPanel = new LoadingCommittedChangeListPanel(project);
    loadingPanel.loadChangesInBackground(() -> loadCommittedChanges(revision, filePath, changelistProvider));
    ChangeListViewerDialog.show(project, title, loadingPanel, lock, showAsTab);
  }
public static void loadAndShowCommittedChangesDetails(@NotNull Project project,
                                                        @NotNull VcsRevisionNumber revision,
                                                        @NotNull FilePath filePath,
                                                        boolean showAsTab,
                                                        @NotNull CommittedChangeListProvider changelistProvider)