Fri, 24 Oct 2014 10:40:37 -0700 bookmarks: explicitly track identical bookmarks stable
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 24 Oct 2014 10:40:37 -0700] rev 23081
bookmarks: explicitly track identical bookmarks bookmarks.compare() previously lumped identical bookmarks in the "invalid" bucket. This patch adds a "same" bucket. An 8-tuple for holding this state is pretty gnarly. The return value should probably be converted into a class to increase readability. But that is beyond the scope of a patch intended to be a late arrival to stable.
Fri, 24 Oct 2014 15:52:20 -0500 context.status: remove incorrect swapping of added/removed in workingctx stable
Martin von Zweigbergk <martinvonz@google.com> [Fri, 24 Oct 2014 15:52:20 -0500] rev 23080
context.status: remove incorrect swapping of added/removed in workingctx The comment in workingctx.status() says that "calling 'super' subtly reveresed the contexts", but that is simply not true, so we should not be swapping added and removed fields.
Thu, 23 Oct 2014 13:17:37 -0700 keyword: use parent of working copy as base for status stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Oct 2014 13:17:37 -0700] rev 23079
keyword: use parent of working copy as base for status Instead of calling repo[None].status(), use the more common form that uses the parent of the working copy as the base: repo['.'].status(). Note that the former defaults to comparing to revision '.', while the latter defaults to revision None, so the contexts being compared are the same. It might seem like this would result in a reverse diff, but it turns out that workingctx.status() incorrectly reverses the result. That bug will be fixed in a later commit.
Thu, 23 Oct 2014 21:53:37 +0900 revset: avoid O(n) lookup of invalid revision in rev() stable
Yuya Nishihara <yuya@tcha.org> [Thu, 23 Oct 2014 21:53:37 +0900] rev 23078
revset: avoid O(n) lookup of invalid revision in rev() ba89f7b542c9 was not the final version of that patch. It was really slow because `l not in repo.changelog` iterates revisions up to `l`. Instead, rev() should utilize spanset.__contains__(). revset #0: rev(210000) 0) wall 0.000039 comb 0.000000 user 0.000000 sys 0.000000 (best of 67978) 1) wall 0.002721 comb 0.000000 user 0.000000 sys 0.000000 (best of 1055) 2) wall 0.000059 comb 0.000000 user 0.000000 sys 0.000000 (best of 45599) (0: 3.2-rc, 1: ba89f7b542c9, 2: this patch) Note that the benchmark result described in ba89f7b542c9 is wrong because it is the one of the initial version.
Thu, 23 Oct 2014 13:44:34 -0500 run-tests: output diffs with only forward slashes stable
Matt Mackall <mpm@selenic.com> [Thu, 23 Oct 2014 13:44:34 -0500] rev 23077
run-tests: output diffs with only forward slashes This removes some gratuitous variance when testing on Windows with test-run-tests.t.
Thu, 23 Oct 2014 12:35:10 -0200 i18n: add hint to digest mismatch message stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 23 Oct 2014 12:35:10 -0200] rev 23076
i18n: add hint to digest mismatch message
Thu, 23 Oct 2014 12:28:00 -0200 help/config: fix typo stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 23 Oct 2014 12:28:00 -0200] rev 23075
help/config: fix typo
Thu, 23 Oct 2014 12:27:57 -0200 files: fix example list syntax stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 23 Oct 2014 12:27:57 -0200] rev 23074
files: fix example list syntax
Thu, 23 Oct 2014 02:42:57 +0200 parsers: use 'k' format for Py_BuildValue instead of 'n' because Python 2.4 stable
Mads Kiilerich <madski@unity3d.com> [Thu, 23 Oct 2014 02:42:57 +0200] rev 23073
parsers: use 'k' format for Py_BuildValue instead of 'n' because Python 2.4 'n' was introduced in Mercurial in 2b5940f64750 and broke Python 2.4 support in mysterious ways that only showed failure in test-glog.t. Py_BuildValue failed because of the unknown format and a TypeError was thrown ... but it never showed up on the Python side and it happily continued processing with wrong data. Quoting https://docs.python.org/2/c-api/arg.html : n (integer) [Py_ssize_t] Convert a Python integer or long integer to a C Py_ssize_t. New in version 2.5. k (integer) [unsigned long] Convert a Python integer or long integer to a C unsigned long without overflow checking. This will use unsigned long instead of Py_ssize_t. That is not a good solution, but good is not an option when we have to support Python 2.4.
Mon, 20 Oct 2014 18:50:09 -0700 rebase: improve base revset performance stable
Durham Goode <durham@fb.com> [Mon, 20 Oct 2014 18:50:09 -0700] rev 23072
rebase: improve base revset performance The old revset had pretty terrible performance on large repositories (12+ seconds). This new revset achieves the same result in only 0.7s. As we improve the underlying revset APIs we can probably get this revset down to 'only(base, dest)::', but at the moment that version still takes 2s.
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip