void (@NotNull VirtualFile root, @NotNull Set<? extends VcsRef> allRefs, @NotNull List<? extends VcsCommitMetadata> sortedCommits, @NotNull DetailedLogData firstBlockSyncData, @NotNull Set<? extends VcsRef> manuallyReadBranches, @Nullable Set<String> currentTagNames, @Nullable DetailedLogData commitsFromTags) { runWithSpan(myTracer, ValidatingData.getName(), span -> { span.setAttribute("rootName", root.getName()); Set<Hash> refs = ContainerUtil.map2Set(allRefs, VcsRef::getCommitHash); PermanentGraphImpl.newInstance(sortedCommits, new GraphColorGetterByNodeFactory<>((hash, integer) -> 0), (head1, head2) -> { if (!refs.contains(head1) || !refs.contains(head2)) { Attachment attachment = new Attachment("error-details.txt", printErrorDetails(root, allRefs, sortedCommits, firstBlockSyncData, manuallyReadBranches, currentTagNames, commitsFromTags)); LOG.error("GitLogProvider returned inconsistent data", attachment); } return 0; }, refs); }); }