Mercurial > jhg
diff cmdline/org/tmatesoft/hg/console/Main.java @ 328:a674b8590362
Move file tree history to upper API level
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Wed, 05 Oct 2011 07:13:57 +0200 |
parents | 09628675bcee |
children | 863356c2847e |
line wrap: on
line diff
--- a/cmdline/org/tmatesoft/hg/console/Main.java Tue Oct 04 07:24:44 2011 +0200 +++ b/cmdline/org/tmatesoft/hg/console/Main.java Wed Oct 05 07:13:57 2011 +0200 @@ -22,12 +22,15 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; import org.junit.Assert; import org.tmatesoft.hg.core.HgBadStateException; import org.tmatesoft.hg.core.HgCatCommand; +import org.tmatesoft.hg.core.HgChangeset; +import org.tmatesoft.hg.core.HgChangesetTreeHandler; import org.tmatesoft.hg.core.HgDataStreamException; import org.tmatesoft.hg.core.HgFileInformer; import org.tmatesoft.hg.core.HgFileRevision; @@ -108,30 +111,46 @@ // m.bunchOfTests(); } - private void buildFileLog() { - final HgDataFile fn = hgRepo.getFileNode("file1"); - HgChangelog.TreeInspector insp = new HgChangelog.TreeInspector() { - - public void next(Nodeid changesetRevision, Pair<Nodeid, Nodeid> parentChangesets, Collection<Nodeid> childChangesets) { + private void buildFileLog() throws Exception { + HgLogCommand cmd = new HgLogCommand(hgRepo); + cmd.file("file1", false); + cmd.execute(new HgChangesetTreeHandler() { + public void next(org.tmatesoft.hg.core.HgChangesetTreeHandler.TreeElement entry) { StringBuilder sb = new StringBuilder(); - for (Nodeid cc : childChangesets) { - sb.append(cc.shortNotation()); + HashSet<Nodeid> test = new HashSet<Nodeid>(entry.childRevisions()); + for (HgChangeset cc : entry.children()) { + sb.append(cc.getRevision()); + sb.append(':'); + sb.append(cc.getNodeid().shortNotation()); sb.append(", "); } - final boolean isJoin = !parentChangesets.first().isNull() && !parentChangesets.second().isNull(); - final boolean isFork = childChangesets.size() > 1; + final Pair<Nodeid, Nodeid> parents = entry.parentRevisions(); + final boolean isJoin = !parents.first().isNull() && !parents.second().isNull(); + final boolean isFork = entry.children().size() > 1; + final HgChangeset cset = entry.changeset(); + System.out.printf("%d:%s - %s\n", cset.getRevision(), cset.getNodeid().shortNotation(), cset.getComment()); + if (!isJoin && !isFork && !entry.children().isEmpty()) { + System.out.printf("\t=> %s\n", sb); + } if (isJoin) { - System.out.printf("join[(%s, %s) => %s]\n", parentChangesets.first().shortNotation(), parentChangesets.second().shortNotation(), changesetRevision.shortNotation()); + HgChangeset p1 = entry.parents().first(); + HgChangeset p2 = entry.parents().second(); + System.out.printf("\tjoin <= (%d:%s, %d:%s)", p1.getRevision(), p1.getNodeid().shortNotation(), p2.getRevision(), p2.getNodeid().shortNotation()); + if (isFork) { + System.out.print(", "); + } } if (isFork) { - System.out.printf("fork[%s => %s]\n", changesetRevision.shortNotation(), sb); + if (!isJoin) { + System.out.print('\t'); + } + System.out.printf("fork => [%s]", sb); } - if (!isFork && !isJoin && !childChangesets.isEmpty()) { - System.out.printf("%s => %s\n", changesetRevision.shortNotation(), sb); + if (isJoin || isFork) { + System.out.println(); } } - }; - fn.history(insp); + }); } private void buildFileLogOld() {