private @NotNull VisiblePack build(@NotNull DataPackBase oldPack,
                                     @NotNull VisibleGraphImpl<Integer> oldGraph,
                                     @NotNull VcsLogFilterCollection filters,
                                     @NotNull Map<Key, Object> data) {
    int visibleRow = VISIBLE_RANGE;
    int visibleRange = VISIBLE_RANGE;
    PermanentGraphInfo<Integer> info = oldGraph.buildSimpleGraphInfo(visibleRow, visibleRange);
    Set<Integer> heads = ContainerUtil.map2Set(info.getPermanentGraphLayout().getHeadNodeIndex(),
                                               integer -> info.getPermanentCommitsInfo().getCommitId(integer));

    RefsModel newRefsModel = createRefsModel(oldPack.getRefsModel(), heads, oldGraph, oldPack.getLogProviders(), visibleRow, visibleRange);
    DataPackBase newPack = new DataPackBase(oldPack.getLogProviders(), newRefsModel, false);
    GraphColorGetter colorGetter = new GraphColorGetterByHeadFactory<>(new GraphColorManagerImpl(newRefsModel)).createColorGetter(info);

    VisibleGraph<Integer> newGraph = new VisibleGraphImpl<>(new CollapsedController(new BaseController(info), info, null),
                                                            info, colorGetter);

    return new VisiblePack(newPack, newGraph, true, filters, data);
  }
private @NotNull VisiblePack build(@NotNull DataPackBase oldPack,
                                     @NotNull VisibleGraphImpl<Integer> oldGraph,
                                     @NotNull VcsLogFilterCollection filters,
                                     @NotNull Map<Key, Object> data)