public void print(RevCommit commit) throws IOException { StringBuilder sb = new StringBuilder(); sb.append("commit ").append(commit.getId().toString()).append('\n'); sb.append("tree ").append(commit.getTreeId().toString()).append('\n'); sb.append("parent"); for (ObjectId parentId : commit.getParentIds()) { sb.append(' ').append(parentId.toString()); } sb.append('\n'); sb.append("author ").append(format(commit.getAuthor())).append('\n'); sb.append("committer ").append(format(commit.getCommitter())).append('\n'); if (commit.getMessage() != null) { sb.append("message\n"); sb.append("\t" + commit.getMessage().replace("\n", "\n\t")); sb.append('\n'); } if (showChanges) { Iterator<DiffEntry> diff = geogig .command(DiffOp.class) .setOldVersion(commit.parentN(0).or(ObjectId.NULL)) .setNewVersion(commit.getId()) .call(); DiffEntry diffEntry; sb.append("changes\n"); while (diff.hasNext()) { diffEntry = diff.next(); String path = diffEntry.newPath() != null ? diffEntry.newPath() : diffEntry.oldPath(); sb.append('\t') .append(path) .append(' ') .append(diffEntry.oldObjectId().toString()) .append(' ') .append(diffEntry.newObjectId().toString()) .append('\n'); } } console.println(sb.toString()); }