boolean (@NotNull LogHierarchyNode node) { // TODO: Such filtering logic is not clear enough so far (and probably not correct for all cases - for instance when we perform merge // TODO: from branch1 to branch2 and have revision which contain merge changes from branch3 to branch1. // TODO: In this case paths of child log entries will not contain neither urls from branch1 nor from branch2 - and checkEntry() method // TODO: will return true => so such revision will not be used (and displayed) further. // TODO: Why do we check entries recursively - we have a revision - set of changes in the "merge from" branch? Why do we need to check // TODO: where they came from - we want avoid some circular merges or what? Does subversion itself perform such checks or not? boolean isLocalChange = or(node.getChildren(), this::checkForSubtree); return isLocalChange || checkForEntry(node.getMe(), myMergeContext.getRepositoryRelativeWorkingCopyPath(), myMergeContext.getRepositoryRelativeSourcePath()); }