Bryan O'Sullivan <bryano@fb.com> [Wed, 19 Dec 2012 10:40:34 -0800] rev 18095
test-inotify: test symlink indirection for unix sockets
The inotify code performs a delicate dance to work around the 108-byte
limit on unix domain socket path names on Linux.
This change sets us up to safely refactor that code without breaking
it. (It is redundant with part of test-inotify-
issue1208.t, but we will
shortly make that test go away.)
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Dec 2012 10:02:43 +0100] rev 18094
test-pathencode: compare current pathencoding implementations
We already have two implementations of the pathencoding (C and
Python) and this test can perfectly well be used to probabilistically
test them instead of just wasting CPU cycles and test time.
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.
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
Siddharth Agarwal <sid0@fb.com> [Mon, 17 Dec 2012 15:08:06 -0800] rev 18082
transplant: replace incancestors uses with ancestors
Siddharth Agarwal <sid0@fb.com> [Mon, 17 Dec 2012 15:13:51 -0800] rev 18081
revlog.ancestors: add support for including revs
This is in preparation for an upcoming refactoring. This also fixes a bug in
incancestors, where if an element of revs was an ancestor of another it would
be generated twice.
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Dec 2012 10:23:18 -0800] rev 18080
perf: add command to test performance of membership in ancestor set
The new command, perfancestorset, takes an argument denoting which revset to
test the membership of.
Currently this runs through all the ancestors and converts them into a set.
The primary purpose of having this is to compare this approach, currently used
in several places, against the upcoming lazy approach.
Siddharth Agarwal <sid0@fb.com> [Tue, 11 Dec 2012 14:47:33 -0800] rev 18079
ancestor: move missingancestors doctest out into a separate file
This is in preparation for upcoming patches which will reuse the same graph
for tests.
Kevin Bullock <kbullock@ringworld.org> [Sun, 16 Dec 2012 23:02:54 -0600] rev 18078
merge with crew-stable
Tim Henigan <tim.henigan@gmail.com> [Thu, 29 Nov 2012 08:44:54 -0500] rev 18077
dirstate: remove obsolete comment from setbranch
This comment should have been removed in
b74361cf7c0a, when the call
to scmutil.checknewlabel was removed.
Idan Kamara <idankk86@gmail.com> [Sat, 15 Dec 2012 20:19:07 +0200] rev 18076
dirstate: don't rename branch file if writing it failed
Kevin Bullock <kbullock@ringworld.org> [Sun, 16 Dec 2012 22:00:38 -0600] rev 18075
commands: 'hg bookmark NAME' should work even with ui.strict=True
Before this patch, enabling strict command processing (ui.strict=True)
meant that 'hg bookmark NAME', as referenced several places in the
documentation, would not work. This adds 'bookmark' as an explicit alias
to 'bookmarks'.
Mads Kiilerich <mads@kiilerich.com> [Sun, 16 Dec 2012 19:41:56 +0100] rev 18074
tests: improve test-mv-cp-st-diff.t readability
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sat, 10 Nov 2012 02:19:20 +0100] rev 18073
obsolete: refuse to push divergent changeset
As other troubles `unstable` and `bumped`. Followup patches may simplify the
push code with unification of "obsolescence troubles" handling.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 12 Dec 2012 03:20:49 +0100] rev 18072
obsolete: add a divergent method on context
The same we have `unstable` and `bumped`. Convenient method to access troubles
information in general may land later.
This get actual use and testing in the next changesets.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 12 Dec 2012 03:12:55 +0100] rev 18071
obsolete: add revset and test for divergent changesets
This changesets add a new `divergent()` revset similar to `unstable()` and
`bumped()` one. Introducting this revset allows actuall test of the divergent
detection.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 12 Dec 2012 03:19:30 +0100] rev 18070
obsolete: detect divergent changesets
Divergent changeset are final successors (non obsolete) of a changeset who
compete with another set of final successors for this same changeset.
For example if you have two obsolescence markers A -> B and A -> C, B and C are
both "divergent" because they compete to be the one true successors of A.
Public revision can't be divergent.
This function is used and tested in the next changeset.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sat, 10 Nov 2012 01:56:59 +0100] rev 18069
obsolete: drop successors sets which are subset of another one
If both "(B,)" and "(B, C)" are successors set of "A", "(B,)" is dropped.
We won't be interrested in detection such divergence scenario.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Dec 2012 15:38:43 +0100] rev 18068
obsolete: compute successors set
Successors set are an important part of obsolescence. It is necessary to detect
and solve divergence situation. This changeset add a core function to compute
them, a debug command to audit them and solid test on the concept.
Check function docstring for details about the concept.