log speedup: use parentrevs in log and changeset_printer.show

This commit is contained in:
Alexis S. L. Carvalho 2006-10-28 20:21:56 -03:00
parent 9b7121fcf6
commit 661a579963

View File

@ -320,8 +320,8 @@ class changeset_printer(object):
hexfunc = self.ui.debugflag and hex or short
parents = [(log.rev(p), hexfunc(p)) for p in log.parents(changenode)
if self.ui.debugflag or p != nullid]
parents = [(p, hexfunc(log.node(p))) for p in log.parentrevs(rev)
if self.ui.debugflag or p != -1]
if (not self.ui.debugflag and len(parents) == 1 and
parents[0][0] == rev-1):
parents = []
@ -1886,8 +1886,7 @@ def log(ui, repo, *pats, **opts):
elif st == 'add':
du.bump(rev)
changenode = repo.changelog.node(rev)
parents = [p for p in repo.changelog.parents(changenode)
if p != nullid]
parents = [p for p in repo.changelog.parentrevs(rev) if p != -1]
if opts['no_merges'] and len(parents) == 2:
continue
if opts['only_merges'] and len(parents) != 2:
@ -1918,7 +1917,11 @@ def log(ui, repo, *pats, **opts):
copies.append((fn, rename[0]))
displayer.show(rev, brinfo=br, copies=copies)
if opts['patch']:
prev = (parents and parents[0]) or nullid
if parents:
prev = parents[0]
else:
prev = -1
prev = repo.changelog.node(prev)
patch.diff(repo, prev, changenode, match=matchfn, fp=du)
du.write("\n\n")
elif st == 'iter':