Sat, 14 Apr 2012 01:39:35 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 14 Apr 2012 01:39:35 -0500] rev 16428
merge with stable
Fri, 13 Apr 2012 11:01:07 -0700 commands: move bundle type validation earlier
Bryan O'Sullivan <bryano@fb.com> [Fri, 13 Apr 2012 11:01:07 -0700] rev 16427
commands: move bundle type validation earlier Checking the bundle type late in the command's execution can mean that we do work for a long time before complaining about incorrect user input and aborting. Guess how I discovered this.
Fri, 13 Apr 2012 22:55:46 -0500 changegroupsubset: optimize function lookup in prune
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16426
changegroupsubset: optimize function lookup in prune
Fri, 13 Apr 2012 22:55:46 -0500 changegroup: optimize gennodelist
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16425
changegroup: optimize gennodelist
Fri, 13 Apr 2012 22:55:46 -0500 revlog: drop some unneeded rev.node calls in revdiff
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16424
revlog: drop some unneeded rev.node calls in revdiff
Thu, 12 Apr 2012 20:26:33 -0700 revlog: avoid an expensive string copy
Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 20:26:33 -0700] rev 16423
revlog: avoid an expensive string copy This showed up in a statprof profile of "hg svn rebuildmeta", which is read-intensive on the changelog. This two-line patch improved the performance of that command by 10%.
Fri, 13 Apr 2012 22:55:46 -0500 changegroupsubset: avoid setdefault in inner loop
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16422
changegroupsubset: avoid setdefault in inner loop
Fri, 13 Apr 2012 22:55:40 -0500 changegroupsubset: drop repeated len() calls
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:40 -0500] rev 16421
changegroupsubset: drop repeated len() calls
Fri, 13 Apr 2012 22:27:29 -0500 changegroup: reduce progress overhead
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:27:29 -0500] rev 16420
changegroup: reduce progress overhead
Fri, 13 Apr 2012 22:23:45 -0500 changegroupsubset: renest inner loop
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:23:45 -0500] rev 16419
changegroupsubset: renest inner loop The mdata list should generally be shorter than changedfiles
Fri, 13 Apr 2012 21:35:48 -0500 revlog: increase readahead size
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 21:35:48 -0500] rev 16418
revlog: increase readahead size
Fri, 13 Apr 2012 15:32:49 -0500 revset: avoid demandimport bug
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 15:32:49 -0500] rev 16417
revset: avoid demandimport bug Apparently the "import x as xy" doesn't manage to update xy in the current scope's dictionary after load, which causes nodemod.nullrev to do a huge amount of demandload magic in the inner loop.
Fri, 13 Apr 2012 15:07:13 +0200 mq: replace hasattr() with util.safehasattr(), update check-code.py stable
Patrick Mezard <patrick@mezard.eu> [Fri, 13 Apr 2012 15:07:13 +0200] rev 16416
mq: replace hasattr() with util.safehasattr(), update check-code.py
Thu, 12 Apr 2012 20:52:39 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:52:39 -0500] rev 16415
merge with stable
Thu, 12 Apr 2012 14:05:59 -0700 parsers: use base-16 trie for faster node->rev mapping
Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 14:05:59 -0700] rev 16414
parsers: use base-16 trie for faster node->rev mapping This greatly speeds up node->rev lookups, with results that are often user-perceptible: for instance, "hg --time log" of the node associated with rev 1000 on a linux-2.6 repo improves from 0.3 seconds to 0.03. I have not found any instances of slowdowns. The new perfnodelookup command in contrib/perf.py demonstrates the speedup more dramatically, since it performs no I/O. For a single lookup, the new code is about 40x faster. These changes also prepare the ground for the possibility of further improving the performance of prefix-based node lookups.
Thu, 12 Apr 2012 20:22:18 -0500 check-code: avoid false-positive on ++
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:22:18 -0500] rev 16413
check-code: avoid false-positive on ++
Wed, 11 Apr 2012 11:37:13 +0200 graphlog: cleanup before code move
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:37:13 +0200] rev 16412
graphlog: cleanup before code move - Avoid revset module aliasing - Mark makefilematcher() private
Wed, 11 Apr 2012 11:32:00 +0200 graphlog: correctly handle calls in subdirectories
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:32:00 +0200] rev 16411
graphlog: correctly handle calls in subdirectories
Wed, 11 Apr 2012 11:29:12 +0200 context: revert workingctx.ancestors() followfirst option
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:29:12 +0200] rev 16410
context: revert workingctx.ancestors() followfirst option It was introduced by mistake in 352053e6cd8e.
Wed, 11 Apr 2012 11:25:34 +0200 graphlog: fix --follow-first --rev combinations
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:25:34 +0200] rev 16409
graphlog: fix --follow-first --rev combinations This solves a similar problem than the previous --follow/--rev patch. This time we need changelog.ancestors()/descendants() filtering on first parent. Duplicating the code looked better than introducing keyword arguments. Besides, the ancestors() version was already implemented in follow() revset.
Wed, 11 Apr 2012 11:22:40 +0200 graphlog: fix --follow --rev combinations
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:22:40 +0200] rev 16408
graphlog: fix --follow --rev combinations The previous behaviour of --follow was really a subset of what is really happening in log command: - If --rev is not passed, default to '.:0' - Resolve --rev into a revision list "revs" - Set the starting revision to revs[0] - If revs[1] > revs[0] keep descendants(revs[0]) in revs, otherwise keep ancestors.
Wed, 11 Apr 2012 11:17:26 +0200 graphlog: support changeset identifiers in --branch
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:17:26 +0200] rev 16407
graphlog: support changeset identifiers in --branch
Wed, 11 Apr 2012 11:14:07 +0200 graphlog: pass changesets to revset.match() in changelog order
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:14:07 +0200] rev 16406
graphlog: pass changesets to revset.match() in changelog order Running: $ time hg debugrevspec 'user(mpm)' | wc on Mercurial repository takes 1.0s with a regular version and 1.8s if commands.debugrevspec() is patched to pass revisions to revset.match() from tip to 0. Depending on what we expect from the revset API and caller wisdom, we might want to push this change in revset.match() later.
Wed, 11 Apr 2012 11:07:30 +0200 graphlog: refactor revset() to return revisions
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:07:30 +0200] rev 16405
graphlog: refactor revset() to return revisions When --follow and --rev are passed, --follow actual behaviour depends on the input revision sequence defined by --rev. If --rev is not passed, the default revision sequence depends on the presence of --follow. It means the revision sequence generation is part of log logic and must be wrapped. The issue described above is fixed in following patches.
(0) -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 +30000 tip