Sun, 27 Jan 2019 13:37:37 +0900 revset: leverage getintrange() helper in relation-subscript operation (API)
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Jan 2019 13:37:37 +0900] rev 41577
revset: leverage getintrange() helper in relation-subscript operation (API) Now a range expression is parsed by a relation function itself since the upper layer have no knowledge about the default first/last bounds.
Sun, 27 Jan 2019 13:28:45 +0900 revset: allow to parse single integer as a range
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Jan 2019 13:28:45 +0900] rev 41576
revset: allow to parse single integer as a range Even though this wouldn't be any useful in followlines(), it helps to unify range processing.
Sun, 27 Jan 2019 13:18:53 +0900 revset: extract a helper to parse integer range
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Jan 2019 13:18:53 +0900] rev 41575
revset: extract a helper to parse integer range It's getting common. As a first step, this patch adds getintrange() and makes followlines() use it. I wanted to unify the error messages to make the function interface simple, but I failed to phrase it briefly.
Thu, 31 Jan 2019 14:47:34 -0800 commit: if interactive, look elsewhere for whitespace settings (BC)
Kyle Lippincott <spectral@google.com> [Thu, 31 Jan 2019 14:47:34 -0800] rev 41574
commit: if interactive, look elsewhere for whitespace settings (BC) Previously, when doing `commit -i`, we respected `diff.ignorews` and other whitespace-related settings, which is probably unexpected. The primary reason for this is to support hgext.record's commandline options, it's probably accidental that the `[diff]` settings were also considered. See comments on issue6042 and D5490. This can cause problems (issue5839, issue6042). It is assumed by the author that the `[diff]` section is primarily for *viewing* diffs, and that it is unlikely what people intend when attempting to commit or revert. With this change, if a user wants the behavior, they can clone their `[diff]` settings to `commands.commit.interactive.<setting>`. This is thus a mild BC change, but one I suspect is not going to be relied on by anyone. Note: while doing a partial commit/revert, we do not know what command the user is actually running. This means that the split extension, which ends up calling into this code, will respect the `commands.commit.interactive.<setting>` settings, and not a hypothetical `commands.split.interactive.<setting>`. This *also* means that setting `commands.commit.interactive.ignoreblanklines`, for example, will still cause issue5839. Considering the highly unlikely chance that a user actually sets `commands.commit.interactive.<setting>`, the author deems this risk acceptable. Differential Revision: https://phab.mercurial-scm.org/D5834
Thu, 31 Jan 2019 14:29:24 -0800 diff: when looking for diff configs, support a configurable prefix
Kyle Lippincott <spectral@google.com> [Thu, 31 Jan 2019 14:29:24 -0800] rev 41573
diff: when looking for diff configs, support a configurable prefix In a future commit, I want to make it possible to have the diff options pulled from (as an example) `commands.commit.interactive.ignorews`; previously we only supported this for customizable sections (so this would have needed a `commit-interactive` section and been named `commit-interactive.ignorews`, which felt a bit weird. Differential Revision: https://phab.mercurial-scm.org/D5833
Thu, 31 Jan 2019 14:27:25 -0800 config: extract diff-related coreconfigitem()s to a helper method
Kyle Lippincott <spectral@google.com> [Thu, 31 Jan 2019 14:27:25 -0800] rev 41572
config: extract diff-related coreconfigitem()s to a helper method We already have 'annotate' and 'diff' that use the same set of options, and I want to add more in a followup commit, so I'm attempting to reduce maintenance burden and duplication by making it possible to register all of them at once. Differential Revision: https://phab.mercurial-scm.org/D5832
Mon, 28 Jan 2019 18:05:05 -0800 commit: ignore diff whitespace settings when doing `commit -i` (issue5839)
Kyle Lippincott <spectral@google.com> [Mon, 28 Jan 2019 18:05:05 -0800] rev 41571
commit: ignore diff whitespace settings when doing `commit -i` (issue5839) Previously, we respected options like `diff.ignoreblanklines` and `diff.ignorews`. This can cause problems when the user is attempting to actually commit the blank line change. Specifically, the split extension can get into an infinite loop because it detects that the working copy is not clean, but when we get the diff we don't see the changes, so it just skips popping up the chunk selection flow, saying there's no changes to record. These options are primarily meant for viewing diffs; it is highly unlikely that someone is actually intending to add extraneous whitespace and have it ignored if they attempt to interactively commit (but *not* ignored if they non-interactively commit). Differential Revision: https://phab.mercurial-scm.org/D5744
Mon, 04 Feb 2019 14:43:26 -0800 tests: add syntax warnings on Python 3.8 in python-zstandard
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:43:26 -0800] rev 41570
tests: add syntax warnings on Python 3.8 in python-zstandard These are warnings from upstream test code. Let's just acknowledge them for now. These should go away in a future python-zstandard release :) Differential Revision: https://phab.mercurial-scm.org/D5846
Mon, 04 Feb 2019 14:38:23 -0800 check-py3-compat: manually format and print warnings
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:38:23 -0800] rev 41569
check-py3-compat: manually format and print warnings The warnings mechanism may print to stderr on Python 3. Independent buffering of stdout and stderr can lead to warnings output not being printed properly. This commit traps warnings when executing individual files and prints warnings to stdout so output is deterministic. Differential Revision: https://phab.mercurial-scm.org/D5845
Mon, 04 Feb 2019 14:25:00 -0800 check-py3-compat: provide filename to ast.parse()
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:25:00 -0800] rev 41568
check-py3-compat: provide filename to ast.parse() This ensures any warning/error messages print a valid filename instead of potentially '<unknown>'. Differential Revision: https://phab.mercurial-scm.org/D5844
Mon, 04 Feb 2019 14:22:50 -0800 doc: escape backslash
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:22:50 -0800] rev 41567
doc: escape backslash This avoids a SyntaxWarning on Python 3.8 due to invalid \ escape. Differential Revision: https://phab.mercurial-scm.org/D5843
Mon, 04 Feb 2019 14:16:52 -0800 testparseutil: escape backslash in docstring
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:16:52 -0800] rev 41566
testparseutil: escape backslash in docstring This is funky. This inline Python code is part of a docstring, which means the string is interpreted first. So any backslashes need double escaping. So even though this is already a br'', we still need to escape. Differential Revision: https://phab.mercurial-scm.org/D5842
Mon, 04 Feb 2019 14:14:25 -0800 tests: use raw strings in test-help.t
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:14:25 -0800] rev 41565
tests: use raw strings in test-help.t This avoids SyntaxWarning on Python 3.8 due to invalid \ escapes. Differential Revision: https://phab.mercurial-scm.org/D5841
Mon, 04 Feb 2019 14:10:10 -0800 tests: escape backslash in makepatch.py inline file
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:10:10 -0800] rev 41564
tests: escape backslash in makepatch.py inline file This avoids some SyntaxWarning on Python 3.8 due to unescaped \. Differential Revision: https://phab.mercurial-scm.org/D5840
Mon, 04 Feb 2019 14:05:26 -0800 tests: use raw strings in test-cbor.py
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:05:26 -0800] rev 41563
tests: use raw strings in test-cbor.py To avoid SyntaxWarning on Python 3.8 due to invalid \ escape. Differential Revision: https://phab.mercurial-scm.org/D5839
Mon, 04 Feb 2019 14:03:15 -0800 showstack: use raw docstring
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:03:15 -0800] rev 41562
showstack: use raw docstring Avoids a SyntaxWarning on Python 3.8 due to invalid \ escape. Differential Revision: https://phab.mercurial-scm.org/D5838
Mon, 04 Feb 2019 14:00:57 -0800 tests: use raw string in test-check-code.t
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 14:00:57 -0800] rev 41561
tests: use raw string in test-check-code.t To avoid a SyntaxWarning on Python 3.8 due to invalid \ escape. Differential Revision: https://phab.mercurial-scm.org/D5837
Mon, 04 Feb 2019 09:47:13 -0800 run-tests: set attributes in sorted order
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:47:13 -0800] rev 41560
run-tests: set attributes in sorted order Python 3.8 preserves insertion order in serialized output (https://bugs.python.org/issue34160). Older Pythons serialized in sorted order. Let's make insertion order sorted so behavior is consistent across Python versions. Differential Revision: https://phab.mercurial-scm.org/D5831
Mon, 04 Feb 2019 09:41:10 -0800 revetbenchmarks: use raw string for regular expression with escapes
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:41:10 -0800] rev 41559
revetbenchmarks: use raw string for regular expression with escapes This avoids a SyntaxWarning on Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5830
Mon, 04 Feb 2019 09:38:33 -0800 check-code: use raw string
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:38:33 -0800] rev 41558
check-code: use raw string This avoids a SyntaxWarning in Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5829
Mon, 04 Feb 2019 09:37:09 -0800 tests: use raw strings for regular expressions with escapes
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:37:09 -0800] rev 41557
tests: use raw strings for regular expressions with escapes Avoids SyntaxWarning on Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5828
Mon, 04 Feb 2019 09:35:55 -0800 drawdag: use raw strings for docstrings
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:35:55 -0800] rev 41556
drawdag: use raw strings for docstrings Avoids SyntaxWarning for invalid \ escape on Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5827
Mon, 04 Feb 2019 09:34:11 -0800 check-config: use raw strings for regular expressions
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:34:11 -0800] rev 41555
check-config: use raw strings for regular expressions This avoids SyntaxWarning on Python 3.8 for invalid \ escapes. Differential Revision: https://phab.mercurial-scm.org/D5826
Mon, 04 Feb 2019 09:32:30 -0800 run-tests: use raw strings for regular expressions
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:32:30 -0800] rev 41554
run-tests: use raw strings for regular expressions Avoids SyntaxWarning due to invalid \ escape on Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5825
Mon, 04 Feb 2019 09:31:19 -0800 check-commit: use raw string for regular expression
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:31:19 -0800] rev 41553
check-commit: use raw string for regular expression Avoids SyntaxWarning on Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5824
Mon, 04 Feb 2019 09:13:05 -0800 configitems: use raw strings for hidden-{command,topic} items
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:13:05 -0800] rev 41552
configitems: use raw strings for hidden-{command,topic} items These strings are regular expressions. The "\." needs to be string escaped. We use raw strings to avoid doing that and the SyntaxWarning we'd receive otherwise on Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5822
Mon, 04 Feb 2019 09:03:10 -0800 convert: use raw string for regular expressions
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:03:10 -0800] rev 41551
convert: use raw string for regular expressions This avoids a SyntaxWarning on Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5821
Mon, 04 Feb 2019 09:01:49 -0800 graphmod: use raw string
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:01:49 -0800] rev 41550
graphmod: use raw string Needed to avoid a SyntaxWarning due to unescaped \ in Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5820
Mon, 04 Feb 2019 09:00:52 -0800 crecord: use raw string for regular expression
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:00:52 -0800] rev 41549
crecord: use raw string for regular expression \s emits a SyntaxWarning in Python 3.8. Use a raw string to avoid escaping the \. Differential Revision: https://phab.mercurial-scm.org/D5819
Mon, 04 Feb 2019 08:59:11 -0800 patch: properly escape \ in string literals
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 08:59:11 -0800] rev 41548
patch: properly escape \ in string literals Python 3.8 will emit a SyntaxWarning for str/bytes with invalid escapes. This commit addresses 4 occurrences where we had a bare \ in a str/bytes. Differential Revision: https://phab.mercurial-scm.org/D5818
Mon, 04 Feb 2019 09:07:00 -0800 global: make some docstrings raw strings
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:07:00 -0800] rev 41547
global: make some docstrings raw strings Python 3.8 emits a SyntaxWarning when a str/bytes contains invalid \ escapes. Various docstrings in our code base contain invalid \ escapes. This commit turns those docstrings into raw strings. Differential Revision: https://phab.mercurial-scm.org/D5816
Mon, 04 Feb 2019 08:54:30 -0800 global: use raw strings for regular expressions with escapes
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 08:54:30 -0800] rev 41546
global: use raw strings for regular expressions with escapes Escape sequences like \w, \s, and \d are technically invalid in str/bytes. This became a deprecation warning in Python 3.6 (https://bugs.python.org/issue27364). Python 3.8 bumps it to a SyntaxWarning (https://bugs.python.org/issue32912), which is non-silent by default. This commit changes a number of regular expressions to use br'' so regular expression special sequences don't need \\ literals. This fixes roughly half of the SyntaxWarning we see in the code base with Python 3.8. Differential Revision: https://phab.mercurial-scm.org/D5815
Mon, 04 Feb 2019 09:29:25 -0800 tests: add optional Python 2.7 deprecation output
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 04 Feb 2019 09:29:25 -0800] rev 41545
tests: add optional Python 2.7 deprecation output pip 19 will emit a Python 2.7 deprecation warning when used with Python 2.7. Let's add that as optional output to our pip test. Differential Revision: https://phab.mercurial-scm.org/D5823
Mon, 04 Feb 2019 17:06:22 -0500 tests: fix test-match.py on Python3
Augie Fackler <augie@google.com> [Mon, 04 Feb 2019 17:06:22 -0500] rev 41544
tests: fix test-match.py on Python3 # skip-blame just b prefixes Differential Revision: https://phab.mercurial-scm.org/D5835
Mon, 04 Feb 2019 20:35:21 +0300 merge with stable
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 04 Feb 2019 20:35:21 +0300] rev 41543
merge with stable
Mon, 04 Feb 2019 18:14:03 +0300 match: teach diffmatcher.visitdir() to return 'all' if possible
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 04 Feb 2019 18:14:03 +0300] rev 41542
match: teach diffmatcher.visitdir() to return 'all' if possible This patch teaches differencematcher.visitdir() to return 'all' when m1.visitdir() returns 'all' and m2 does not matches. Before this patch, from a differencematcher.visitdir(), we always returned either True or False. We never returned 'all' even when we can. This causes problem when m1 and m2 of a differencematcher are themselves differencematcher. In that case, we try to check: `if self._m2_.visitdir(dir) == 'all'` which will never be 'all' even though it can be. This leads to iterating over a lot of sub-directory manifest, even though we don't want to while extending a narrow clone. I am yet to measure the impact of this but calculating manifest was taking ~50-60 seconds, so this should definitely save some of time there. Differential Revision: https://phab.mercurial-scm.org/D5814
Sun, 03 Feb 2019 10:01:43 +0100 py3: use integer division instead of `int(...)` call
Boris Feld <boris.feld@octobus.net> [Sun, 03 Feb 2019 10:01:43 +0100] rev 41541
py3: use integer division instead of `int(...)` call Changeset 38a82e0333c9 and 7f853549823b introduced explicit conversion to integer to work around the division behavior change from python2 to python3. Using the integer division operator is a simpler and clearer way to achieve this.
Sun, 03 Feb 2019 17:15:11 +0530 py3: add some b'' prefixes in test-notify.t
Pulkit Goyal <pulkit@yandex-team.ru> [Sun, 03 Feb 2019 17:15:11 +0530] rev 41540
py3: add some b'' prefixes in test-notify.t # skip-blame as just b'' prefixes Differential Revision: https://phab.mercurial-scm.org/D5811
Sun, 03 Feb 2019 17:05:47 +0530 py3: use pycompat.long in hgext/convert/monotone.py
Pulkit Goyal <pulkit@yandex-team.ru> [Sun, 03 Feb 2019 17:05:47 +0530] rev 41539
py3: use pycompat.long in hgext/convert/monotone.py Differential Revision: https://phab.mercurial-scm.org/D5810
Sun, 03 Feb 2019 16:59:46 +0530 py3: add three new passing tests found by buildbot
Pulkit Goyal <pulkit@yandex-team.ru> [Sun, 03 Feb 2019 16:59:46 +0530] rev 41538
py3: add three new passing tests found by buildbot Differential Revision: https://phab.mercurial-scm.org/D5809
Sun, 03 Feb 2019 16:38:47 +0530 py3: do a fsdecode(), fsencode() dance in posix.py
Pulkit Goyal <pulkit@yandex-team.ru> [Sun, 03 Feb 2019 16:38:47 +0530] rev 41537
py3: do a fsdecode(), fsencode() dance in posix.py We have to use `fsdecode()` instead of sysstr() because they are abusing `PyUnicode_EncodeFSDefault()` to get back bytes. Differential Revision: https://phab.mercurial-scm.org/D5808
Sun, 03 Feb 2019 01:02:24 +0530 revert: add prompt before undeleting a file in -i (issue6008)
Taapas Agrawal <taapas2897@gmail.com> [Sun, 03 Feb 2019 01:02:24 +0530] rev 41536
revert: add prompt before undeleting a file in -i (issue6008) This adds a prompt that asks whether or not a removed file is to be undeleted in `hg revert -i`. Differential Revision: https://phab.mercurial-scm.org/D5803
Sat, 02 Feb 2019 13:16:46 -0800 py3: add alternate output on Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Feb 2019 13:16:46 -0800] rev 41535
py3: add alternate output on Python 3 This is basically the same deal as D5806. Python 3's exception printing output is different. We had to tweak the regular expression to match appropriately, hence the added line of output. Differential Revision: https://phab.mercurial-scm.org/D5807
Sat, 02 Feb 2019 13:13:22 -0800 py3: add Python 3 output for test-flagprocessor.t
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Feb 2019 13:13:22 -0800] rev 41534
py3: add Python 3 output for test-flagprocessor.t The exception is being generated from ui.traceback(), which simply calls traceback.format_*() to format exceptions. Since the output from the standard library has changed, there is seemingly not much we can do about it. So this commit adds conditional output depending on the Python version. I'm not thrilled about b'' appearing in user-facing output. Can we do something better here? Differential Revision: https://phab.mercurial-scm.org/D5806
Sat, 02 Feb 2019 11:49:26 -0800 zeroconf: Python 3 porting of vendored library
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Feb 2019 11:49:26 -0800] rev 41533
zeroconf: Python 3 porting of vendored library A quick glance through this module reveals that most of it "just works" on Python 3 with the source transformer active. There are a few places where we need to ensure we're using str. Differential Revision: https://phab.mercurial-scm.org/D5804
Tue, 22 Jan 2019 14:22:25 +0800 relnotes: more improvements
Anton Shestakov <av6@dwimlabs.net> [Tue, 22 Jan 2019 14:22:25 +0800] rev 41532
relnotes: more improvements
Sat, 02 Feb 2019 15:26:51 +0900 py3: don't use universal_newlines in svnsubrepo
Yuya Nishihara <yuya@tcha.org> [Sat, 02 Feb 2019 15:26:51 +0900] rev 41531
py3: don't use universal_newlines in svnsubrepo On Python 3, it means text=True without any specific encoding, which is pretty bad. Instead, use util.fromnativeeol() to translate CR+LF to LF without encoding conversion.
Sat, 02 Feb 2019 15:21:35 +0900 py3: remove unneeded fsencode() from gitsubrepo
Yuya Nishihara <yuya@tcha.org> [Sat, 02 Feb 2019 15:21:35 +0900] rev 41530
py3: remove unneeded fsencode() from gitsubrepo Here p.stdout isn't a TextIO. read() must return bytes.
Fri, 25 Jan 2019 14:41:53 -0800 debugcommands: add a debugpathcopies command
Martin von Zweigbergk <martinvonz@google.com> [Fri, 25 Jan 2019 14:41:53 -0800] rev 41529
debugcommands: add a debugpathcopies command I've been working on storing copy metadata in the changelog instead of the filelog and this has been useful for debugging. Do we usually add tests for these? Differential Revision: https://phab.mercurial-scm.org/D5791
Fri, 01 Feb 2019 20:21:04 -0500 py3: record several more passes from the buildbot ratchet
Augie Fackler <augie@google.com> [Fri, 01 Feb 2019 20:21:04 -0500] rev 41528
py3: record several more passes from the buildbot ratchet Differential Revision: https://phab.mercurial-scm.org/D5799
Wed, 30 Jan 2019 17:05:09 -0800 grep: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com> [Wed, 30 Jan 2019 17:05:09 -0800] rev 41527
grep: respect ui.relative-paths Differential Revision: https://phab.mercurial-scm.org/D5777
Wed, 30 Jan 2019 16:59:31 -0800 grep: move writing of path outside of column loop
Martin von Zweigbergk <martinvonz@google.com> [Wed, 30 Jan 2019 16:59:31 -0800] rev 41526
grep: move writing of path outside of column loop This will make the next patch simpler. Differential Revision: https://phab.mercurial-scm.org/D5776
Tue, 29 Jan 2019 12:01:13 -0800 resolve: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com> [Tue, 29 Jan 2019 12:01:13 -0800] rev 41525
resolve: respect ui.relative-paths Differential Revision: https://phab.mercurial-scm.org/D5748
Wed, 30 Jan 2019 12:05:43 -0800 merge: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com> [Wed, 30 Jan 2019 12:05:43 -0800] rev 41524
merge: respect ui.relative-paths We print file paths in a lot of places in this code and I've probably missed a few places. We can fix them as we discover them (I'm also happy to fix anything reviewers notice, of course). Differential Revision: https://phab.mercurial-scm.org/D5747
Tue, 29 Jan 2019 18:46:11 -0500 histedit: add templating support to histedit's rule file generation
Augie Fackler <augie@google.com> [Tue, 29 Jan 2019 18:46:11 -0500] rev 41523
histedit: add templating support to histedit's rule file generation This will allow users to customize the display of the rule list for the free-form segment that we don't interpret. We've had users want to add things like bookmark names or similar to the rule list as a convenience, which seems reasonable. Differential Revision: https://phab.mercurial-scm.org/D5742
Fri, 01 Feb 2019 17:03:51 -0800 py3: account for demand import difference between Python versions
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 01 Feb 2019 17:03:51 -0800] rev 41522
py3: account for demand import difference between Python versions Our lazy importer for Python 3 will validate that modules are loadable before returning a stub module object. This is different from Python 2, which will always return a stub module object. While we could change behavior of the Python 3 demand importer, that seems like a problem for another day. This commit teaches test-extension.t about that difference in behavior. Differential Revision: https://phab.mercurial-scm.org/D5798
Fri, 01 Feb 2019 13:20:13 -0800 tests: use unimported modules in test-demandimport.py
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 01 Feb 2019 13:20:13 -0800] rev 41521
tests: use unimported modules in test-demandimport.py contextlib isn't a good module to test because it is likely already imported by code above. Let's use modules that shouldn't have been imported. And let's verify that with asserts. Differential Revision: https://phab.mercurial-scm.org/D5797
Fri, 01 Feb 2019 16:47:29 -0800 py3: conditionalize test-demandimport.py for Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 01 Feb 2019 16:47:29 -0800] rev 41520
py3: conditionalize test-demandimport.py for Python 3 The Python 3 lazy importer uses the LazyLoader that is part of importlib. On Python 3 and later, LazyLoader is implemented using a custom module type that defines a __getattribute__ which triggers module loading. Furthermore, there are additional differences as well. For example, it appears that Python 3 will return an existing sys.modules entry instead of constructing a new module object. This commit adds additional test coverage for lazy importing behavior to cover the differences between Python 2 and 3. This reveals that the test and some lazy import functionality is kinda busted. For example, the test assumes "contextlib" will be lazy. But in reality an import before it has already imported contextlib! There's definitely room to improve the behavior of the demand importer code, both for Python 2 and 3. But at least the test passes on Python 3 now. Differential Revision: https://phab.mercurial-scm.org/D5796
Fri, 01 Feb 2019 12:09:05 -0800 py3: replace print() with assert in test-demandimport.py
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 01 Feb 2019 12:09:05 -0800] rev 41519
py3: replace print() with assert in test-demandimport.py Behavior of demand imports behaves differently between Python 2 and 3. .out files do not support conditional output the way that .t files do. In order to make this test work on Python 3, we'll need to make the test itself conditional. The first step of this is to port the test to not use a .out file to compare output. Unfortunately, we can't easily use the unittest framework for defining this test because putting import statements in functions changes the behavior of the demand importer (at least on Python 2). So, we effectively replace a bunch of print() with assert statements. This makes the test a bit annoying to debug, as the test will stop at first assertion failure. But we don't exactly have a good alternative. Differential Revision: https://phab.mercurial-scm.org/D5795
Sat, 02 Feb 2019 04:49:42 +0530 py3: pass str into grp.getgrnam
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 02 Feb 2019 04:49:42 +0530] rev 41518
py3: pass str into grp.getgrnam grp.getgrnam expects str on Python 3. This fixes test-acl.t on Python 3. Differential Revision: https://phab.mercurial-scm.org/D5794
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 tip