Mercurial > jhg
comparison cmdline/org/tmatesoft/hg/console/Bundle.java @ 182:f26ffe04ced0
Refactor HgBundle to dispatch changes found through callback
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Tue, 12 Apr 2011 19:36:18 +0200 |
| parents | 8c8e3f372fa1 |
| children | 9b99d27aeddc |
comparison
equal
deleted
inserted
replaced
| 181:cd3371670f0b | 182:f26ffe04ced0 |
|---|---|
| 16 */ | 16 */ |
| 17 package org.tmatesoft.hg.console; | 17 package org.tmatesoft.hg.console; |
| 18 | 18 |
| 19 import java.io.File; | 19 import java.io.File; |
| 20 | 20 |
| 21 import org.tmatesoft.hg.core.Nodeid; | |
| 21 import org.tmatesoft.hg.repo.HgBundle; | 22 import org.tmatesoft.hg.repo.HgBundle; |
| 23 import org.tmatesoft.hg.repo.HgChangelog; | |
| 22 import org.tmatesoft.hg.repo.HgLookup; | 24 import org.tmatesoft.hg.repo.HgLookup; |
| 23 import org.tmatesoft.hg.repo.HgRepository; | 25 import org.tmatesoft.hg.repo.HgRepository; |
| 26 import org.tmatesoft.hg.repo.HgChangelog.RawChangeset; | |
| 24 | 27 |
| 25 | 28 |
| 26 /** | 29 /** |
| 27 * WORK IN PROGRESS, DO NOT USE | 30 * WORK IN PROGRESS, DO NOT USE |
| 28 * | 31 * |
| 30 * @author TMate Software Ltd. | 33 * @author TMate Software Ltd. |
| 31 */ | 34 */ |
| 32 public class Bundle { | 35 public class Bundle { |
| 33 public static void main(String[] args) throws Exception { | 36 public static void main(String[] args) throws Exception { |
| 34 Options cmdLineOpts = Options.parse(args); | 37 Options cmdLineOpts = Options.parse(args); |
| 35 HgRepository hgRepo = cmdLineOpts.findRepository(); | 38 final HgRepository hgRepo = cmdLineOpts.findRepository(); |
| 36 if (hgRepo.isInvalid()) { | 39 if (hgRepo.isInvalid()) { |
| 37 System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); | 40 System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); |
| 38 return; | 41 return; |
| 39 } | 42 } |
| 40 File bundleFile = new File("/temp/hg/hg-bundle-000000000000-gz.tmp"); | 43 File bundleFile = new File("/temp/hg/hg-bundle-a78c980749e3.tmp"); |
| 41 HgBundle hgBundle = new HgLookup().loadBundle(bundleFile); | 44 HgBundle hgBundle = new HgLookup().loadBundle(bundleFile); |
| 42 // hgBundle.dump(); | 45 // hgBundle.dump(); |
| 43 /* pass -R <path-to-repo-with-less-revisions-than-bundle>, e.g. for bundle with tip=168 and -R \temp\hg4j-50 with tip:159 | 46 /* pass -R <path-to-repo-with-less-revisions-than-bundle>, e.g. for bundle with tip=168 and -R \temp\hg4j-50 with tip:159 |
| 44 +Changeset {User: ..., Comment: Integer ....} | 47 +Changeset {User: ..., Comment: Integer ....} |
| 45 +Changeset {User: ..., Comment: Approach with ...} | 48 +Changeset {User: ..., Comment: Approach with ...} |
| 46 -Changeset {User: ..., Comment: Correct project name...} | 49 -Changeset {User: ..., Comment: Correct project name...} |
| 47 -Changeset {User: ..., Comment: Record possible...} | 50 -Changeset {User: ..., Comment: Record possible...} |
| 48 */ | 51 */ |
| 49 hgBundle.changes(hgRepo); | 52 hgBundle.changes(hgRepo, new HgChangelog.Inspector() { |
| 53 private final HgChangelog changelog = hgRepo.getChangelog(); | |
| 54 | |
| 55 public void next(int revisionNumber, Nodeid nodeid, RawChangeset cset) { | |
| 56 if (changelog.isKnown(nodeid)) { | |
| 57 System.out.print("+"); | |
| 58 } else { | |
| 59 System.out.print("-"); | |
| 60 } | |
| 61 System.out.printf("%d:%s\n%s\n", revisionNumber, nodeid.shortNotation(), cset.toString()); | |
| 62 } | |
| 63 }); | |
| 50 } | 64 } |
| 51 | 65 |
| 52 /* | 66 /* |
| 53 * TODO EXPLAIN why DataAccess.java on merge from branch has P2 set, and P1 is NULL | 67 * TODO EXPLAIN why DataAccess.java on merge from branch has P2 set, and P1 is NULL |
| 54 * | 68 * |
