public String getText(final 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();
 }
 private 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);
   }
 }