Mercurial > hg4j
comparison cmdline/org/tmatesoft/hg/console/Log.java @ 80:4222b04f34ee
Follow history of a file
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 25 Jan 2011 03:54:32 +0100 |
parents | c677e1593919 |
children | 61eedab3eb3e |
comparison
equal
deleted
inserted
replaced
79:5f9635c01681 | 80:4222b04f34ee |
---|---|
82 for (String fname : cmdLineOpts.files) { | 82 for (String fname : cmdLineOpts.files) { |
83 HgDataFile f1 = hgRepo.getFileNode(fname); | 83 HgDataFile f1 = hgRepo.getFileNode(fname); |
84 System.out.println("History of the file: " + f1.getPath()); | 84 System.out.println("History of the file: " + f1.getPath()); |
85 String normalizesName = hgRepo.getPathHelper().rewrite(fname); | 85 String normalizesName = hgRepo.getPathHelper().rewrite(fname); |
86 if (cmdLineOpts.limit == -1) { | 86 if (cmdLineOpts.limit == -1) { |
87 cmd.file(Path.create(normalizesName)).execute(dump); | 87 cmd.file(Path.create(normalizesName), true).execute(dump); |
88 } else { | 88 } else { |
89 int[] r = new int[] { 0, f1.getRevisionCount() }; | 89 int[] r = new int[] { 0, f1.getRevisionCount() }; |
90 if (fixRange(r, dump.reverseOrder, cmdLineOpts.limit) == 0) { | 90 if (fixRange(r, dump.reverseOrder, cmdLineOpts.limit) == 0) { |
91 System.out.println("No changes"); | 91 System.out.println("No changes"); |
92 continue; | 92 continue; |
93 } | 93 } |
94 cmd.range(r[0], r[1]).file(Path.create(normalizesName)).execute(dump); | 94 cmd.range(r[0], r[1]).file(Path.create(normalizesName), true).execute(dump); |
95 } | 95 } |
96 dump.complete(); | 96 dump.complete(); |
97 } | 97 } |
98 } | 98 } |
99 // | 99 // |
113 int rv = start_end[1] - start_end[0]; | 113 int rv = start_end[1] - start_end[0]; |
114 start_end[1]--; // range needs index, not length | 114 start_end[1]--; // range needs index, not length |
115 return rv; | 115 return rv; |
116 } | 116 } |
117 | 117 |
118 private static final class Dump implements LogCommand.Handler { | 118 private static final class Dump implements LogCommand.FileHistoryHandler { |
119 // params | 119 // params |
120 boolean complete = false; // roughly --debug | 120 boolean complete = false; // roughly --debug |
121 boolean reverseOrder = false; | 121 boolean reverseOrder = false; |
122 boolean verbose = true; // roughly -v | 122 boolean verbose = true; // roughly -v |
123 // own | 123 // own |
128 | 128 |
129 public Dump(HgRepository hgRepo) { | 129 public Dump(HgRepository hgRepo) { |
130 repo = hgRepo; | 130 repo = hgRepo; |
131 tip = hgRepo.getChangelog().getRevisionCount() - 1; | 131 tip = hgRepo.getChangelog().getRevisionCount() - 1; |
132 } | 132 } |
133 | |
134 public void copy(FileRevision from, FileRevision to) { | |
135 System.out.printf("Got notified that %s(%s) was originally known as %s(%s)\n", to.getPath(), to.getRevision(), from.getPath(), from.getRevision()); | |
136 } | |
133 | 137 |
134 public void next(Cset changeset) { | 138 public void next(Cset changeset) { |
135 final String s = print(changeset); | 139 final String s = print(changeset); |
136 if (reverseOrder) { | 140 if (reverseOrder) { |
141 // XXX in fact, need to insert s into l according to changeset.getRevision() | |
142 // because when file history is being followed, revisions of the original file (with smaller revNumber) | |
143 // are reported *after* revisions of present file and with addFirst appear above them | |
137 l.addFirst(s); | 144 l.addFirst(s); |
138 } else { | 145 } else { |
139 System.out.print(s); | 146 System.out.print(s); |
140 } | 147 } |
141 } | 148 } |