private static void addToListByLevel( final SvnFileRevision revision, final SvnFileRevision revisionToAdd, final int level) { if (level < 0) { return; } if (level == 0) { revision.addMergeSource(revisionToAdd); return; } final List<SvnFileRevision> sources = revision.getMergeSources(); if (!sources.isEmpty()) { addToListByLevel(sources.get(sources.size() - 1), revisionToAdd, level - 1); } }
private static String toString(@Nullable VcsFileRevision value) { if (!(value instanceof SvnFileRevision)) return ""; final SvnFileRevision revision = (SvnFileRevision) value; final List<SvnFileRevision> mergeSources = revision.getMergeSources(); if (mergeSources.isEmpty()) { return ""; } final StringBuilder sb = new StringBuilder(); for (SvnFileRevision source : mergeSources) { if (sb.length() != 0) { sb.append(", "); } sb.append(source.getRevisionNumber().asString()); if (!source.getMergeSources().isEmpty()) { sb.append("*"); } } return sb.toString(); }