Wed, 27 Sep 2017 18:07:48 -0700 config: use copy-on-write to improve copy performance
Jun Wu <quark@fb.com> [Wed, 27 Sep 2017 18:07:48 -0700] rev 34358
config: use copy-on-write to improve copy performance Previously, chg's `verify` call could take 30+ms loading and checking new config files. With one socket redirection, that adds up to around 70ms, which is a lot for fast commands (ex. `bookmark --hidden`). When investigating closer, A lot of time was spent on actually spent on ui copying, which is mainly about `config.config` and `dict` copying. This patch makes that 20x faster by adopting copy-on-write. The copy-on-write is performed at config section level. Before: In [1]: %timeit ui.copy() 100 loops, best of 3: 2.32 ms per loop After: In [1]: %timeit ui.copy() 10000 loops, best of 3: 128 us per loop 2ms may look not that bad, but it adds up pretty quickly with multiple calls. A typical chg run may call it 4 times, which is about 10ms. Differential Revision: https://phab.mercurial-scm.org/D808
Sat, 30 Sep 2017 18:19:14 +0530 py3: whitelist 15 more tests passing on Python 3
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Sep 2017 18:19:14 +0530] rev 34357
py3: whitelist 15 more tests passing on Python 3 We have reached the count of 75 tests passing on Python 3. Differential Revision: https://phab.mercurial-scm.org/D858
Sat, 30 Sep 2017 15:48:08 +0530 py3: use pycompat.bytestr instead of str
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Sep 2017 15:48:08 +0530] rev 34356
py3: use pycompat.bytestr instead of str Differential Revision: https://phab.mercurial-scm.org/D855
Sat, 30 Sep 2017 15:45:15 +0530 py3: explicitly convert dict.keys() and dict.items() into a list
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Sep 2017 15:45:15 +0530] rev 34355
py3: explicitly convert dict.keys() and dict.items() into a list Differential Revision: https://phab.mercurial-scm.org/D853
Sat, 30 Sep 2017 18:02:53 +0530 py3: use '%d' instead of '%s' for integers
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Sep 2017 18:02:53 +0530] rev 34354
py3: use '%d' instead of '%s' for integers Differential Revision: https://phab.mercurial-scm.org/D856
Sat, 30 Sep 2017 15:46:36 +0530 py3: use pycompat.strkwargs() before passing a dict as keyword argument
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Sep 2017 15:46:36 +0530] rev 34353
py3: use pycompat.strkwargs() before passing a dict as keyword argument Differential Revision: https://phab.mercurial-scm.org/D854
Sat, 30 Sep 2017 05:22:22 +0530 py3: return False early while checking whether None is a key in lazymanifest
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Sep 2017 05:22:22 +0530] rev 34352
py3: return False early while checking whether None is a key in lazymanifest In this patch we returns False early if we are trying to check whether None is a key in lazymanifest. The reason I added a diff is that on Python 3, it goes into the lazy manifest code an returns a TypeError. I checked with Durham that whether None can be a possible key in lazymanifest and he said "no". So it's safe to have this if statement. This fixes `hg merge` on Python 3. Differential Revision: https://phab.mercurial-scm.org/D852
Fri, 29 Sep 2017 14:49:05 -0700 dirstate: use keyword arguments to clarify status()'s callers
Martin von Zweigbergk <martinvonz@google.com> [Fri, 29 Sep 2017 14:49:05 -0700] rev 34351
dirstate: use keyword arguments to clarify status()'s callers The arguments are especially non-obvious because the order is different from dirstate.walk(). Differential Revision: https://phab.mercurial-scm.org/D847
Fri, 29 Sep 2017 14:19:36 -0700 dirstate: use keyword arguments to clarify walk()'s callers
Martin von Zweigbergk <martinvonz@google.com> [Fri, 29 Sep 2017 14:19:36 -0700] rev 34350
dirstate: use keyword arguments to clarify walk()'s callers The arguments are especially non-obvious because the order is different from dirstate.status(). Differential Revision: https://phab.mercurial-scm.org/D846
Fri, 29 Sep 2017 14:23:41 -0700 perf: remove fallbacks to ancient versions of dirstate.walk()
Martin von Zweigbergk <martinvonz@google.com> [Fri, 29 Sep 2017 14:23:41 -0700] rev 34349
perf: remove fallbacks to ancient versions of dirstate.walk() If the call to dirstate.walk() failed, we would try to fall back to older versions. These were removed in d3d1d39da2fa (walk: remove cmdutil.walk, 2008-05-12) and f8299c84b5b6 (dirstate: fold statwalk and walk, 2008-06-26). We don't care about testing performance of versions that old versions at this point, so let's clean up. Differential Revision: https://phab.mercurial-scm.org/D845
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip