String (@NotNull VcsFileRevision revision, boolean withMessage) { // implementation reflected by com.intellij.vcs.log.ui.frame.VcsLogGraphTable.getPresentableText() @Nls StringBuilder sb = new StringBuilder(); long time = revision.getRevisionDate().getTime(); sb.append(VcsBundle.message("file.history.details.hash.author.on.date.at.time", VcsUtil.getShortRevisionString(revision.getRevisionNumber()), revision.getAuthor(), DateFormatUtil.formatDate(time), DateFormatUtil.formatTime(time))); if (revision instanceof VcsFileRevisionEx) { if (!Objects.equals(revision.getAuthor(), ((VcsFileRevisionEx)revision).getCommitterName())) { sb.append(" (").append(VcsBundle.message("file.history.details.committer.info", ((VcsFileRevisionEx)revision).getCommitterName())).append(")"); } } if (withMessage) { sb.append(" ").append(MessageColumnInfo.getSubject(revision)); } return sb.toString(); }