@NotNull
  private static LoadingCommittedChangeListPanel.ChangelistData loadCommittedChanges(
    @NotNull VcsRevisionNumber revision,
    @NotNull FilePath filePath,
    @NotNull CommittedChangeListProvider changelistProvider) throws VcsException {
    try {
      Pair<? extends CommittedChangeList, FilePath> pair = changelistProvider.loadChangelist();
      if (pair.getFirst() == null) throw new VcsException(failedText(filePath, revision));

      CommittedChangeList changeList = pair.getFirst();
      FilePath targetPath = pair.getSecond();

      FilePath navigateToPath = ObjectUtils.notNull(targetPath, filePath);
      return new LoadingCommittedChangeListPanel.ChangelistData(changeList, navigateToPath);
    }
    catch (VcsException e) {
      throw new VcsException(failedText(filePath, revision), e);
    }
  }
@NotNull
  private static LoadingCommittedChangeListPanel.ChangelistData loadCommittedChanges(
    @NotNull VcsRevisionNumber revision,
    @NotNull FilePath filePath,
    @NotNull CommittedChangeListProvider changelistProvider)