Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 3574:8d87c8d45b3d
log speedup: use parentrevs in log and changeset_printer.show
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 28 Oct 2006 20:21:56 -0300 |
parents | 31401776153f |
children | 0facae7566cc |
comparison
equal
deleted
inserted
replaced
3573:31401776153f | 3574:8d87c8d45b3d |
---|---|
318 extra = changes[5] | 318 extra = changes[5] |
319 branch = extra.get("branch") | 319 branch = extra.get("branch") |
320 | 320 |
321 hexfunc = self.ui.debugflag and hex or short | 321 hexfunc = self.ui.debugflag and hex or short |
322 | 322 |
323 parents = [(log.rev(p), hexfunc(p)) for p in log.parents(changenode) | 323 parents = [(p, hexfunc(log.node(p))) for p in log.parentrevs(rev) |
324 if self.ui.debugflag or p != nullid] | 324 if self.ui.debugflag or p != -1] |
325 if (not self.ui.debugflag and len(parents) == 1 and | 325 if (not self.ui.debugflag and len(parents) == 1 and |
326 parents[0][0] == rev-1): | 326 parents[0][0] == rev-1): |
327 parents = [] | 327 parents = [] |
328 | 328 |
329 self.ui.write(_("changeset: %d:%s\n") % (rev, hexfunc(changenode))) | 329 self.ui.write(_("changeset: %d:%s\n") % (rev, hexfunc(changenode))) |
1884 du = dui(ui) | 1884 du = dui(ui) |
1885 displayer.ui = du | 1885 displayer.ui = du |
1886 elif st == 'add': | 1886 elif st == 'add': |
1887 du.bump(rev) | 1887 du.bump(rev) |
1888 changenode = repo.changelog.node(rev) | 1888 changenode = repo.changelog.node(rev) |
1889 parents = [p for p in repo.changelog.parents(changenode) | 1889 parents = [p for p in repo.changelog.parentrevs(rev) if p != -1] |
1890 if p != nullid] | |
1891 if opts['no_merges'] and len(parents) == 2: | 1890 if opts['no_merges'] and len(parents) == 2: |
1892 continue | 1891 continue |
1893 if opts['only_merges'] and len(parents) != 2: | 1892 if opts['only_merges'] and len(parents) != 2: |
1894 continue | 1893 continue |
1895 | 1894 |
1916 rename = getrenamed(fn, rev, mf) | 1915 rename = getrenamed(fn, rev, mf) |
1917 if rename: | 1916 if rename: |
1918 copies.append((fn, rename[0])) | 1917 copies.append((fn, rename[0])) |
1919 displayer.show(rev, brinfo=br, copies=copies) | 1918 displayer.show(rev, brinfo=br, copies=copies) |
1920 if opts['patch']: | 1919 if opts['patch']: |
1921 prev = (parents and parents[0]) or nullid | 1920 if parents: |
1921 prev = parents[0] | |
1922 else: | |
1923 prev = -1 | |
1924 prev = repo.changelog.node(prev) | |
1922 patch.diff(repo, prev, changenode, match=matchfn, fp=du) | 1925 patch.diff(repo, prev, changenode, match=matchfn, fp=du) |
1923 du.write("\n\n") | 1926 du.write("\n\n") |
1924 elif st == 'iter': | 1927 elif st == 'iter': |
1925 if count == limit: break | 1928 if count == limit: break |
1926 if du.header[rev]: | 1929 if du.header[rev]: |