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.
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.
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.
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.
Bryan O'Sullivan <bryano@fb.com> [Mon, 17 Dec 2012 15:52:44 -0800] rev 18088
ignore: only read an ignore file once
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.
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.
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.
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.
Siddharth Agarwal <sid0@fb.com> [Mon, 17 Dec 2012 15:08:37 -0800] rev 18083
revlog: remove incancestors since it is no longer used