Mon, 17 Dec 2012 20:51:21 -0800 rebase: use lazy ancestor membership testing
Siddharth Agarwal <sid0@fb.com> [Mon, 17 Dec 2012 20:51:21 -0800] rev 18093
rebase: use lazy ancestor membership testing For a repository with over 400,000 commits, rebasing one revision near tip, this avoids one walk up the DAG, speeding the operation up by around 0.8 seconds.
Mon, 17 Dec 2012 20:43:37 -0800 localrepo: use lazy ancestor membership testing
Siddharth Agarwal <sid0@fb.com> [Mon, 17 Dec 2012 20:43:37 -0800] rev 18092
localrepo: use lazy ancestor membership testing For a repository with over 400,000 commits, rebasing one revision near tip, this avoids two treks up the DAG, speeding the operation up by around 1.6 seconds.
Tue, 18 Dec 2012 12:47:20 -0800 ancestor: add lazy membership testing to lazyancestors
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Dec 2012 12:47:20 -0800] rev 18091
ancestor: add lazy membership testing to lazyancestors This also makes the perfancestorset command use lazy membership testing. In a linear repository with over 400,000 commits, without this patch, hg perfancestorset takes 0.80 seconds no matter how far behind we're looking. With this patch, hg perfancestorset -- X takes: Rev X Time -1 0.00s -4000 0.01s -20000 0.04s -80000 0.17s -200000 0.43s -300000 0.69s 0 0.88s Thus, for revisions close to tip, we're up to several orders of magnitude faster. At 0 we're around 10% slower.
Tue, 18 Dec 2012 10:14:01 -0800 revlog: move ancestor generation out to a new class
Siddharth Agarwal <sid0@fb.com> [Tue, 18 Dec 2012 10:14:01 -0800] rev 18090
revlog: move ancestor generation out to a new class This refactoring is to prepare for implementing lazy membership.
Mon, 17 Dec 2012 15:57:02 -0800 ignore: process hgignore files in deterministic order
Bryan O'Sullivan <bryano@fb.com> [Mon, 17 Dec 2012 15:57:02 -0800] rev 18089
ignore: process hgignore files in deterministic order Previously, we processed them in whatever order the dict iterator gave us.
Mon, 17 Dec 2012 15:52:44 -0800 ignore: only read an ignore file once
Bryan O'Sullivan <bryano@fb.com> [Mon, 17 Dec 2012 15:52:44 -0800] rev 18088
ignore: only read an ignore file once
Mon, 17 Dec 2012 16:23:37 -0800 ignore: refactor ignore into two functions
Bryan O'Sullivan <bryano@fb.com> [Mon, 17 Dec 2012 16:23:37 -0800] rev 18087
ignore: refactor ignore into two functions This prepares us for eventually being able to hash the list of patterns in use.
Mon, 10 Dec 2012 18:12:41 +0100 clfilter: fix `nodemap` usage in `getbundle`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 10 Dec 2012 18:12:41 +0100] rev 18086
clfilter: fix `nodemap` usage in `getbundle` With the current implementation, `changelog.nodemap` is not filtered. So some filtered changeset in common are not filtered by `n in nodemap`. This leads to crash lower in the stack when the bundle generation try to access those node on a filtered changelog.
Mon, 17 Dec 2012 17:00:24 +0100 test: fix truncated comment in test
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 17 Dec 2012 17:00:24 +0100] rev 18085
test: fix truncated comment in test The push is made to ensure repository are related. The comment in the initial changeset got truncated somehow.
Mon, 17 Dec 2012 18:09:41 +0100 clfilter: ensure context raise RepoLookupError when the revision is filtered
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 17 Dec 2012 18:09:41 +0100] rev 18084
clfilter: ensure context raise RepoLookupError when the revision is filtered Currently the code path of `changectx(filteredrepo, rev)` call `filteredrepo.changelog.node(rev)`. When `rev` is filtered this raise an unhandled `IndexError`. This case now raise a `RepoLookupError` as other error case do.
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 +30000 tip