tikhomirov@13: /* tikhomirov@19: * Copyright (c) 2010, 2011 Artem Tikhomirov tikhomirov@13: */ tikhomirov@13: package com.tmate.hgkit.console; tikhomirov@13: tikhomirov@19: import static com.tmate.hgkit.ll.HgRepository.TIP; tikhomirov@19: tikhomirov@64: import org.tmatesoft.hg.core.Path; tikhomirov@64: import org.tmatesoft.hg.core.RepositoryTreeWalker; tikhomirov@64: import org.tmatesoft.hg.core.LogCommand.FileRevision; tikhomirov@64: tikhomirov@13: import com.tmate.hgkit.fs.RepositoryLookup; tikhomirov@19: import com.tmate.hgkit.ll.HgManifest; tikhomirov@13: import com.tmate.hgkit.ll.HgRepository; tikhomirov@19: import com.tmate.hgkit.ll.Nodeid; tikhomirov@13: tikhomirov@13: /** tikhomirov@13: * tikhomirov@13: * @author artem tikhomirov@13: */ tikhomirov@13: public class Manifest { tikhomirov@13: tikhomirov@13: public static void main(String[] args) throws Exception { tikhomirov@13: RepositoryLookup repoLookup = new RepositoryLookup(); tikhomirov@13: RepositoryLookup.Options cmdLineOpts = RepositoryLookup.Options.parse(args); tikhomirov@13: HgRepository hgRepo = repoLookup.detect(cmdLineOpts); tikhomirov@13: if (hgRepo.isInvalid()) { tikhomirov@13: System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); tikhomirov@13: return; tikhomirov@13: } tikhomirov@13: System.out.println(hgRepo.getLocation()); tikhomirov@64: hgRepo.getManifest().walk(0, TIP, new Dump()); tikhomirov@64: // tikhomirov@64: new RepositoryTreeWalker(hgRepo).dirs(true).walk(new RepositoryTreeWalker.Handler() { tikhomirov@64: tikhomirov@64: public void begin(Nodeid manifestRevision) { tikhomirov@64: System.out.println(">> " + manifestRevision); tikhomirov@64: } tikhomirov@64: public void dir(Path p) { tikhomirov@64: System.out.println(p); tikhomirov@64: } tikhomirov@64: public void file(FileRevision fileRevision) { tikhomirov@64: System.out.print(fileRevision.getRevision());; tikhomirov@64: System.out.print(" "); tikhomirov@64: System.out.println(fileRevision.getPath()); tikhomirov@64: } tikhomirov@64: tikhomirov@64: public void end(Nodeid manifestRevision) { tikhomirov@64: System.out.println(); tikhomirov@64: } tikhomirov@64: }); tikhomirov@13: } tikhomirov@22: tikhomirov@22: public static final class Dump implements HgManifest.Inspector { tikhomirov@22: public boolean begin(int revision, Nodeid nid) { tikhomirov@22: System.out.printf("%d : %s\n", revision, nid); tikhomirov@22: return true; tikhomirov@22: } tikhomirov@22: tikhomirov@22: public boolean next(Nodeid nid, String fname, String flags) { tikhomirov@22: System.out.println(nid + "\t" + fname + "\t\t" + flags); tikhomirov@22: return true; tikhomirov@22: } tikhomirov@22: tikhomirov@22: public boolean end(int revision) { tikhomirov@22: System.out.println(); tikhomirov@22: return true; tikhomirov@22: } tikhomirov@22: } tikhomirov@13: }