static @Nullable Change createChangeToParents(int commitRow, @NotNull List<Integer> parentRows,
                                                @NotNull VisiblePack visiblePack, @NotNull VcsLogDiffHandler diffHandler,
                                                @NotNull VcsLogData logData) {
    int commitIndex = visiblePack.getVisibleGraph().getRowInfo(commitRow).getCommit();
    FilePath path = FileHistoryPaths.filePath(visiblePack, commitIndex);
    if (path == null) return null;
    Hash commitHash = logData.getCommitId(commitIndex).getHash();
    ContentRevision afterRevision = createContentRevision(commitHash, commitIndex, visiblePack, diffHandler);

    if (parentRows.isEmpty()) {
      if (afterRevision == null) return null;
      return new Change(null, afterRevision);
    }

    List<Integer> parentCommits = map(parentRows, r -> visiblePack.getVisibleGraph().getRowInfo(r).getCommit());
    List<Hash> parentHashes = map(parentCommits, c -> logData.getCommitId(c).getHash());
    List<Change> parentChanges = mapNotNull(toCollection(zip(parentCommits, parentHashes)), parent -> {
      ContentRevision beforeRevision = createContentRevision(parent.second, parent.first, visiblePack, diffHandler);
      if (afterRevision == null && beforeRevision == null) return null;
      return new Change(beforeRevision, afterRevision);
    });
    if (parentChanges.size() <= 1) {
      return getFirstItem(parentChanges);
    }
    return new MyVcsChangesMerger(commitHash, parentHashes, diffHandler).mergedChange(path, parentChanges);
  }
static @Nullable Change createChangeToParents(int commitRow, @NotNull List<Integer> parentRows,
                                                @NotNull VisiblePack visiblePack, @NotNull VcsLogDiffHandler diffHandler,
                                                @NotNull VcsLogData logData)