Mon, 22 May 2017 13:35:22 -0400 cmdutil: use a generator expression instead of a list comprehension
Augie Fackler <augie@google.com> [Mon, 22 May 2017 13:35:22 -0400] rev 32432
cmdutil: use a generator expression instead of a list comprehension
Sat, 20 May 2017 20:15:05 -0400 cmdutil: rename template param to export to fntemplate
Augie Fackler <augie@google.com> [Sat, 20 May 2017 20:15:05 -0400] rev 32431
cmdutil: rename template param to export to fntemplate It's actually a template for the filename, not a formatter template.
Sat, 20 May 2017 17:58:04 -0400 cmdutil: comprehensively document the interface of export
Augie Fackler <augie@google.com> [Sat, 20 May 2017 17:58:04 -0400] rev 32430
cmdutil: comprehensively document the interface of export I want to make some improvements here, but in order to make future patches easier to review I want to document the current state of the world.
Mon, 22 May 2017 15:56:47 -0700 tests: hide warning from test-xdg.t
Durham Goode <durham@fb.com> [Mon, 22 May 2017 15:56:47 -0700] rev 32429
tests: hide warning from test-xdg.t The test-xdg.t test uses the system hgrc because it unsets HGRCPATH. If the system has an extension enabled that doesn't work with the development version of Mercurial it prints an 'extension failed to load' warning. Let's just hide that by piping stderr to /dev/null.
Mon, 22 May 2017 22:59:40 -0700 policy: define C module versions individually
Jun Wu <quark@fb.com> [Mon, 22 May 2017 22:59:40 -0700] rev 32428
policy: define C module versions individually This allows us to bump the version for a single module without changing all of them.
Sat, 20 May 2017 19:43:58 +0200 repoview: rename '_getdynamicblockers' to 'revealedrevs' (API)
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 May 2017 19:43:58 +0200] rev 32427
repoview: rename '_getdynamicblockers' to 'revealedrevs' (API) Recent mailing list discussion made me realised we could clarify these. We make the function "public" to encourage extensions to wrap it and we use a more explicit name that mirror "hideablerevs".
Sat, 20 May 2017 19:43:29 +0200 repoview: move '_getdynamicblock' next to 'hideablerevs'
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 May 2017 19:43:29 +0200] rev 32426
repoview: move '_getdynamicblock' next to 'hideablerevs' There are the two functions that extensions should use to augment the hidding logic. It seem better to have them together at the top of the file.
Sun, 21 May 2017 13:26:17 -0700 python3: allow hgloader to work with lazy loaders
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 13:26:17 -0700] rev 32425
python3: allow hgloader to work with lazy loaders Don't clobber the loader returned from find_spec. This brings `hg version` down from 0.27 seconds to 0.17.
Sun, 21 May 2017 12:51:01 -0700 init: turn on demandimport for Python 3.6 and above
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 12:51:01 -0700] rev 32424
init: turn on demandimport for Python 3.6 and above This uses the new demandimport implementation for Python 3 introduced in previous patches. This doesn't yet enhance performance because it isn't integrated with the custom source file loader we use on Python 3. We'll integrate the two in upcoming patches.
Sun, 21 May 2017 12:23:04 -0700 demandimport: add python 3 implementation
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 12:23:04 -0700] rev 32423
demandimport: add python 3 implementation This implementation uses the new importlib finder/loader functionality available in Python 3.5 and up. # no-check-commit
Sun, 21 May 2017 12:10:53 -0700 demandimport: move ignore list to __init__.py
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 12:10:53 -0700] rev 32422
demandimport: move ignore list to __init__.py We're going to use the same ignore list for Python 3.
Sun, 21 May 2017 13:44:26 -0700 check: check modules in hgdemandimport
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 13:44:26 -0700] rev 32421
check: check modules in hgdemandimport A few places only check modules in mercurial and hgext. Add hgdemandimport to the list in those places.
Sun, 21 May 2017 12:10:53 -0700 demandimport: move to separate package
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 12:10:53 -0700] rev 32420
demandimport: move to separate package In Python 3, demand loading is per-package. Keeping demandimport in the mercurial package would disable demand loading for any modules in mercurial.
Sun, 21 May 2017 12:09:01 -0700 import-checker: add a way to directly import certain symbols
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 12:09:01 -0700] rev 32419
import-checker: add a way to directly import certain symbols We'll use this for the 'demandimport' symbol in an upcoming patch.
Sun, 21 May 2017 13:34:42 -0700 check-code: allow skipping hasattr check in py3-only code
Siddharth Agarwal <sid0@fb.com> [Sun, 21 May 2017 13:34:42 -0700] rev 32418
check-code: allow skipping hasattr check in py3-only code hasattr is safe in Python 3, and in an upcoming patch we can't use util.safehasattr.
Mon, 22 May 2017 01:17:49 -0700 profiling: allow loading profiling extension before everything else
Jun Wu <quark@fb.com> [Mon, 22 May 2017 01:17:49 -0700] rev 32417
profiling: allow loading profiling extension before everything else 6d642ecf1a89 makes profiler start early without loading extensions. That makes it impossible for an extension to add customized profilers. This patch adds a special case: if a profiler is not found but an extension with the same name could be loaded, load that extension first, and expect it to have a "profile" contextmanager method. This allows customized profilers and extension setup time is still profiled.
Mon, 22 May 2017 00:51:56 -0700 extensions: allow loading a whitelisted subset of extensions
Jun Wu <quark@fb.com> [Mon, 22 May 2017 00:51:56 -0700] rev 32416
extensions: allow loading a whitelisted subset of extensions This feature will be used by the next patch.
Mon, 22 May 2017 08:49:34 -0700 match: catch attempts to create case-insenstive exact matchers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 May 2017 08:49:34 -0700] rev 32415
match: catch attempts to create case-insenstive exact matchers Exact matchers are only created internally (as opposed to from user input) based on a set of files that the caller collected before, so they should always match the list exactly (i.e. case-sensitively).
Mon, 22 May 2017 19:29:21 +0200 test: remove aliases forcing date, use default-date
Boris Feld <boris.feld@octobus.net> [Mon, 22 May 2017 19:29:21 +0200] rev 32414
test: remove aliases forcing date, use default-date Now that we have the default-date by default and all code have been updated, remove the old commands alias that forced the date as they are not longer useful. Writing tests now should be easier for everyone now that all dates should be stable.
Mon, 22 May 2017 19:28:47 +0200 test: prepare tests for removing date aliases
Boris Feld <boris.feld@octobus.net> [Mon, 22 May 2017 19:28:47 +0200] rev 32413
test: prepare tests for removing date aliases In the next patch, I'm gonna removing the global command aliases that force the epoch date but some tests either fail or their output change after that. Instead I'm copying the needed aliases in the test files that will otherwise change. Update test-rebase-obsolete.t because a revision hash is based on the epoch date after a 'commit --amend' and the output will change after removing date aliases. Update test-subrepo-git.t as the git subrepo doesn't use traditional date mechanisms. I'm not sure that updating the git subrepo to support default-date make sense. Add the commit alias to the test in order for making it pass after removing the date aliases globally.
Tue, 16 May 2017 18:36:08 +0200 devel: update blackbox to use default-date
Boris Feld <boris.feld@octobus.net> [Tue, 16 May 2017 18:36:08 +0200] rev 32412
devel: update blackbox to use default-date Blackbox now obeys the 'devel.default-date' option. As a side effect we can delete the mock for blackblox related tests.
Fri, 19 May 2017 12:08:47 +0200 devel: use default-date config field when creating obsmarkers
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 12:08:47 +0200] rev 32411
devel: use default-date config field when creating obsmarkers Also use the default-date when creating obsmarkers. Currently they are created with the current date and without any option to force their value. To test the feature, we remove some of the many 'glob' used to match obsmarker date in the tests.
Mon, 22 May 2017 16:59:57 +0200 devel: activate default-date in tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 May 2017 16:59:57 +0200] rev 32410
devel: activate default-date in tests It will make writing future tests more easier for everyone as we won't need to glob dates anymore in tests.
Fri, 19 May 2017 12:18:25 +0200 devel: add a config field to force dates to timestamp 0
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 12:18:25 +0200] rev 32409
devel: add a config field to force dates to timestamp 0 Add a new config field named default-date under the devel section to force all implicits date to a specific value. If a explicit date is passed, it will override the default. This patch only affect changesets. Other usages (blackbox, obsmarkers) are updated in later patchs. The test runner is setting a bunch of alias to force the '--date' argument. We will replace theses aliases in a later patch.
Fri, 19 May 2017 12:07:41 +0200 ui: add the possiblity to get a date config field
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 12:07:41 +0200] rev 32408
ui: add the possiblity to get a date config field Add the method configdate to read a date from configuration. It uses the util.rawparsedate refactored earlier to support all standard date formats.
Fri, 19 May 2017 12:07:23 +0200 util: refactor util.parsedate to raises ValueError
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 12:07:23 +0200] rev 32407
util: refactor util.parsedate to raises ValueError Split most of util.parsedate in util.rawparsedate and make it raises ValueError instead of error.Abort. The util.parsedate function is now just a shell function converting ValueError to error.Abort for existing users. I need to parse a date from config in a later patch and use util.rawparsedate with ui.configwith which expect a convert that raises ValueError.
Mon, 22 May 2017 11:08:18 -0700 match: implement __repr__() and update users (API)
Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 May 2017 11:08:18 -0700] rev 32406
match: implement __repr__() and update users (API) fsmonitor and debugignore currently access matcher fields that I would consider implementation details, namely patternspat, includepat, and excludepat. Let' instead implement __repr__() and have the few users use that instead. Marked (API) because the fields can now be None.
Mon, 22 May 2017 10:41:32 -0700 fsmonitor: fix silly "*kwargs" bug in merge.update() override
Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 May 2017 10:41:32 -0700] rev 32405
fsmonitor: fix silly "*kwargs" bug in merge.update() override Everyone knows that it's supposed to be spelled with two asterisks. It started failing in fad5e299cfc7 (update: accept --merge to allow merging across topo branches (issue5125), 2017-02-13) because until then there was only one argument that was covered by the kwargs, so *kwargs or **kwargs both worked (or at least that's what I think with my limited understanding of Python).
Fri, 19 May 2017 20:06:45 +0530 revset: make `hg log -r 'wdir()^'` work (issue4905)
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 May 2017 20:06:45 +0530] rev 32404
revset: make `hg log -r 'wdir()^'` work (issue4905) This patch catches the WdirUnsupported exception to support wdir()^.
Fri, 19 May 2017 19:12:06 +0530 revlog: raise WdirUnsupported when wdirrev is passed
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 May 2017 19:12:06 +0530] rev 32403
revlog: raise WdirUnsupported when wdirrev is passed revlog.parentrevs() is called while evaluating ^ operator in revsets. When wdir is passed, it raises IndexError. This patch raises WdirUnsupported if wdir is passed in the function. The error will be caugth in future patches.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip