Mercurial > jhg
annotate cmdline/org/tmatesoft/hg/console/ChangesetDumpHandler.java @ 659:a5cf64f2e7e4 smartgit-4.6
Poor performance when reading/collecting branch information. Respect new cache location for recent mercurial revisions. Use different algorithm to build branch cache
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Fri, 05 Jul 2013 20:42:45 +0200 | 
| parents | 6526d8adbc0f | 
| children | 
| rev | line source | 
|---|---|
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
1 /* | 
| 
628
 
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
502 
diff
changeset
 | 
2 * Copyright (c) 2011-2013 TMate Software Ltd | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
3 * | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
4 * This program is free software; you can redistribute it and/or modify | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
5 * it under the terms of the GNU General Public License as published by | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
6 * the Free Software Foundation; version 2 of the License. | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
7 * | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
8 * This program is distributed in the hope that it will be useful, | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
11 * GNU General Public License for more details. | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
12 * | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
13 * For information on how to redistribute this software under | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
14 * the terms of a license other than GNU General Public License | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
15 * contact TMate Software at support@hg4j.com | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
16 */ | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
17 package org.tmatesoft.hg.console; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
18 | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
19 import java.util.Formatter; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
20 import java.util.LinkedList; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
21 import java.util.List; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
22 | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
23 import org.tmatesoft.hg.core.HgChangeset; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
24 import org.tmatesoft.hg.core.HgChangesetHandler; | 
| 
319
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
25 import org.tmatesoft.hg.core.HgException; | 
| 
231
 
1792b37650f2
Introduced access to conflict resolution information (merge state)
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
211 
diff
changeset
 | 
26 import org.tmatesoft.hg.core.HgFileRevision; | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
27 import org.tmatesoft.hg.core.Nodeid; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
28 import org.tmatesoft.hg.repo.HgRepository; | 
| 
628
 
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
502 
diff
changeset
 | 
29 import org.tmatesoft.hg.repo.HgRuntimeException; | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
30 import org.tmatesoft.hg.util.Path; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
31 | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
32 /** | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
33 * | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
34 * @author Artem Tikhomirov | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
35 * @author TMate Software Ltd. | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
36 */ | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
37 public class ChangesetDumpHandler implements HgChangesetHandler { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
38 // params | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
39 private boolean complete = false; // roughly --debug | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
40 private boolean reverseOrder = false; | 
| 
208
 
ef8eba4aa215
Correct index of revisions to be added into a repository
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
206 
diff
changeset
 | 
41 private boolean verbose = false; // roughly -v | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
42 // own | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
43 private LinkedList<String> l = new LinkedList<String>(); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
44 private final HgRepository repo; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
45 private final int tip; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
46 | 
| 
628
 
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
502 
diff
changeset
 | 
47 public ChangesetDumpHandler(HgRepository hgRepo) throws HgRuntimeException { | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
48 repo = hgRepo; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
49 tip = hgRepo.getChangelog().getLastRevision(); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
50 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
51 | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
52 public ChangesetDumpHandler complete(boolean b) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
53 complete = b; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
54 return this; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
55 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
56 | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
57 public ChangesetDumpHandler reversed(boolean b) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
58 reverseOrder = b; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
59 return this; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
60 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
61 | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
62 public ChangesetDumpHandler verbose(boolean b) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
63 verbose = b; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
64 return this; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
65 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
66 | 
| 
628
 
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
502 
diff
changeset
 | 
67 public void cset(HgChangeset changeset) throws HgRuntimeException { | 
| 
319
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
68 try { | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
69 final String s = print(changeset); | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
70 if (reverseOrder) { | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
71 // XXX in fact, need to insert s into l according to changeset.getRevision() | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
72 // because when file history is being followed, revisions of the original file (with smaller revNumber) | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
73 // are reported *after* revisions of present file and with addFirst appear above them | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
74 l.addFirst(s); | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
75 } else { | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
76 System.out.print(s); | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
77 } | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
78 } catch (HgException ex) { | 
| 
 
fa4aea41746e
Dump exception to console
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
274 
diff
changeset
 | 
79 ex.printStackTrace(); | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
80 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
81 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
82 | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
83 public void done() { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
84 if (!reverseOrder) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
85 return; | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
86 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
87 for (String s : l) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
88 System.out.print(s); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
89 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
90 l.clear(); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
91 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
92 | 
| 
628
 
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
502 
diff
changeset
 | 
93 private String print(HgChangeset cset) throws HgException, HgRuntimeException { | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
94 StringBuilder sb = new StringBuilder(); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
95 Formatter f = new Formatter(sb); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
96 final Nodeid csetNodeid = cset.getNodeid(); | 
| 
423
 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
367 
diff
changeset
 | 
97 f.format("changeset: %d:%s\n", cset.getRevisionIndex(), complete ? csetNodeid : csetNodeid.shortNotation()); | 
| 
 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
367 
diff
changeset
 | 
98 if (cset.getRevisionIndex() == tip || repo.getTags().isTagged(csetNodeid)) { | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
99 sb.append("tag: "); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
100 for (String t : repo.getTags().tags(csetNodeid)) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
101 sb.append(t); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
102 sb.append(' '); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
103 } | 
| 
423
 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
367 
diff
changeset
 | 
104 if (cset.getRevisionIndex() == tip) { | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
105 sb.append("tip"); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
106 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
107 sb.append('\n'); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
108 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
109 if (complete) { | 
| 
445
 
d0e5dc3cae6e
Support for phases functionality from Mercurial 2.1
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
367 
diff
changeset
 | 
110 f.format("phase: %s\n", cset.getPhase().name()); | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
111 Nodeid p1 = cset.getFirstParentRevision(); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
112 Nodeid p2 = cset.getSecondParentRevision(); | 
| 
502
 
37d97854c6ad
Respect changesets with no list of changed files, as discovered with Issue 41
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
471 
diff
changeset
 | 
113 Nodeid mr = cset.getManifestRevision(); | 
| 
367
 
2fadf8695f8a
Use 'revision index' instead of the vague 'local revision number' concept in the API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
319 
diff
changeset
 | 
114 int p1x = p1.isNull() ? -1 : repo.getChangelog().getRevisionIndex(p1); | 
| 
 
2fadf8695f8a
Use 'revision index' instead of the vague 'local revision number' concept in the API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
319 
diff
changeset
 | 
115 int p2x = p2.isNull() ? -1 : repo.getChangelog().getRevisionIndex(p2); | 
| 
502
 
37d97854c6ad
Respect changesets with no list of changed files, as discovered with Issue 41
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
471 
diff
changeset
 | 
116 int mx = mr.isNull() ? -1 : repo.getManifest().getRevisionIndex(mr); | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
117 f.format("parent: %d:%s\nparent: %d:%s\nmanifest: %d:%s\n", p1x, p1, p2x, p2, mx, cset.getManifestRevision()); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
118 } | 
| 
211
 
644ee58c9f16
Compound HgDate object to provide flexible access to change date/time information
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
208 
diff
changeset
 | 
119 f.format("user: %s\ndate: %s\n", cset.getUser(), cset.getDate().toString()); | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
120 if (!complete && verbose) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
121 final List<Path> files = cset.getAffectedFiles(); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
122 sb.append("files: "); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
123 for (Path s : files) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
124 sb.append(' '); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
125 sb.append(s); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
126 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
127 sb.append('\n'); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
128 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
129 if (complete) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
130 if (!cset.getModifiedFiles().isEmpty()) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
131 sb.append("files: "); | 
| 
231
 
1792b37650f2
Introduced access to conflict resolution information (merge state)
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
211 
diff
changeset
 | 
132 for (HgFileRevision s : cset.getModifiedFiles()) { | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
133 sb.append(' '); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
134 sb.append(s.getPath()); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
135 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
136 sb.append('\n'); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
137 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
138 if (!cset.getAddedFiles().isEmpty()) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
139 sb.append("files+: "); | 
| 
231
 
1792b37650f2
Introduced access to conflict resolution information (merge state)
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
211 
diff
changeset
 | 
140 for (HgFileRevision s : cset.getAddedFiles()) { | 
| 
206
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
141 sb.append(' '); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
142 sb.append(s.getPath()); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
143 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
144 sb.append('\n'); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
145 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
146 if (!cset.getRemovedFiles().isEmpty()) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
147 sb.append("files-: "); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
148 for (Path s : cset.getRemovedFiles()) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
149 sb.append(' '); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
150 sb.append(s); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
151 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
152 sb.append('\n'); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
153 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
154 // if (cset.extras() != null) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
155 // sb.append("extra: "); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
156 // for (Map.Entry<String, String> e : cset.extras().entrySet()) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
157 // sb.append(' '); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
158 // sb.append(e.getKey()); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
159 // sb.append('='); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
160 // sb.append(e.getValue()); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
161 // } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
162 // sb.append('\n'); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
163 // } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
164 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
165 if (complete || verbose) { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
166 f.format("description:\n%s\n\n", cset.getComment()); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
167 } else { | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
168 f.format("summary: %s\n\n", cset.getComment()); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
169 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
170 return sb.toString(); | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
171 } | 
| 
 
63c9fed4369e
Sample command line tools for incoming/outgoing to use commands
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
172 } | 
