Mercurial > hg
changeset 19394:4da845cd854f
summary: use missing ancestors algorithm to find new commits
For a repository with around 520,000 commits and 190,000 files, this reduces
the time hg summary takes from 5.5 seconds to 2.75.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Mon, 15 Jul 2013 15:19:43 -0700 |
parents | 33e1b2d4bdbc |
children | 19622224559b |
files | mercurial/commands.py |
diffstat | 1 files changed, 2 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Tue Jul 16 11:13:18 2013 -0500 +++ b/mercurial/commands.py Mon Jul 15 15:19:43 2013 -0700 @@ -5480,18 +5480,8 @@ ui.write(_('commit: %s\n') % t.strip()) # all ancestors of branch heads - all ancestors of parent = new csets - new = [0] * len(repo) - cl = repo.changelog - for a in [cl.rev(n) for n in bheads]: - new[a] = 1 - for a in cl.ancestors([cl.rev(n) for n in bheads]): - new[a] = 1 - for a in [p.rev() for p in parents]: - if a >= 0: - new[a] = 0 - for a in cl.ancestors([p.rev() for p in parents]): - new[a] = 0 - new = sum(new) + new = len(repo.changelog.findmissing([ctx.node() for ctx in parents], + bheads)) if new == 0: # i18n: column positioning for "hg summary"