Gregory Szorc <gregory.szorc@gmail.com> [Wed, 21 Oct 2020 22:53:15 -0700] rev 45753
automation: upload Python 3.9 Windows wheels
We are producing these. We should be publishing them.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 21 Oct 2020 21:53:19 -0700] rev 45752
contrib: split Windows requirements into multiple files
Package support for Python 2 has diverged significantly. It is no
longer trivial to maintain a single requirements file that supports
both Python 2 and 3 because the set of packages and versions varies
wildly.
This commit split up the Windows requirements files so we have
variants for Python 2 and 3. As part of this, I also renamed the
files to have what I believe to be more reasonable naming ("win32"
felt like a weird identifier to me).
We can see that some package versions decreated on 2.7. This is
because the old pinned versions weren't compatible with Python 2.
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Oct 2020 13:06:18 +0900] rev 45751
relnotes: add diffcontains() to new features list
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Oct 2020 13:00:04 +0900] rev 45750
revset: rename diff(pattern) to diffcontains(pattern)
Suggested by Augie, and I think it's better name.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 18 Oct 2020 22:48:00 -0700] rev 45749
pyoxidizer: update to PyOxidizer 0.9
We were previously using a Git commit from a few days before the 0.8
release. This commit upgrades us to the just-released 0.9 release.
This required some Starlark changes due to backwards incompatible
changes.
Differential Revision: https://phab.mercurial-scm.org/D9228
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Oct 2020 22:06:30 +0530] rev 45748
Added signature for changeset
0e06a7ab9e0d
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Oct 2020 22:06:23 +0530] rev 45747
Added tag 5.6rc0 for changeset
0e06a7ab9e0d
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Oct 2020 22:04:04 +0530] rev 45746
merge with default for 5.6rc0
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:57:30 -0700] rev 45745
tag: leverage cmdutil.check_incompatible_arguments()
Differential Revision: https://phab.mercurial-scm.org/D9223
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:36:17 -0700] rev 45744
serve: leverage cmdutil.check_incompatible_arguments()
Differential Revision: https://phab.mercurial-scm.org/D9222
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:36:08 -0700] rev 45743
revert: leverage cmdutil.check_incompatible_arguments()
Differential Revision: https://phab.mercurial-scm.org/D9221
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:23:45 -0700] rev 45742
incoming: leverage cmdutil.check_incompatible_arguments()
Differential Revision: https://phab.mercurial-scm.org/D9220
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:23:35 -0700] rev 45741
grep: levarage cmdutil.check_incompatible_arguments()
Differential Revision: https://phab.mercurial-scm.org/D9219
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 21:48:43 -0700] rev 45740
import: leverage cmdutil.check_incompatible_arguments()
Differential Revision: https://phab.mercurial-scm.org/D9217
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 21:44:03 -0700] rev 45739
backout: leverage cmdutil.check_incompatible_arguments()
Differential Revision: https://phab.mercurial-scm.org/D9216
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Oct 2020 12:52:45 -0700] rev 45738
transaction: use ProgrammingError for when an committed transaction is used
It seems to me that ProgrammingError is the right type of error here.
Differential Revision: https://phab.mercurial-scm.org/D9215
Mitchell Plamann <mplamann@janestreet.com> [Mon, 05 Oct 2020 17:18:39 -0400] rev 45737
hook: ignore EPIPE when flushing stdout/stderr
This fixes the bug described in the parent commit.
test-transaction-rollback-on-sigpipe.t is updated to show the new
behavior.
Differential Revision: https://phab.mercurial-scm.org/D9152
Mitchell Plamann <mplamann@janestreet.com> [Mon, 05 Oct 2020 13:23:16 -0400] rev 45736
test: add test-transaction-rollback-on-sigpipe.t demonstrating py3 regression
When an hg push is interrupted with C-c, the remote [hg serve] command
receives SIGPIPE.
If a pretxnchangegroup hook fails, the remote hg then tries to
rollback the transaction. It begins by printing "transaction
abort!\n". This returns EPIPE, but ui.py ignores that error.
In python3 (but not python2), this "transaction abort!\n" message
stays in a buffer, so future flushes of stderr will try to print the
message again, and so those flushes will also hit EPIPE.
This test demonstrates such a case where this EPIPE causes the
transaction rollback to fail, leaving behind an abandoned transaction.
Differential Revision: https://phab.mercurial-scm.org/D9151
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 05:14:37 +0200] rev 45735
upgrade: allow sidedata upgrade to modify revision flag
In the process, we fix the lack of HAS_COPIES_INFO flag on upgrade, and test the
results.
Differential Revision: https://phab.mercurial-scm.org/D9199
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 03:30:49 +0200] rev 45734
sidedata: return enough data to set the proper flag in the future
If the revision has information relevant to copy tracing, we need to set a
dedicated flag in revlog. Currently the upgrade process is failing to do so.
Before we teach the upgrade process about flags, we make the information
available where we will needs it.
Differential Revision: https://phab.mercurial-scm.org/D9198
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 02:49:03 +0200] rev 45733
test: move upgrade run and check earlier in test-copies-chain-merge
We are about to introduce an explicit case for copy tracing after a upgrade. So
I am moving the code around beforehand for clarity.
Differential Revision: https://phab.mercurial-scm.org/D9196
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 02:45:24 +0200] rev 45732
copies: split creation of the graph and actual checking again
The re-install the old split. It will be necessary to test that the upgrade
process produced a functionally identical result. It will be useful to detect
case where the metadata we look at identical, but some other items we did not
checked are missing.
(spoiler: we will find some bug)
Differential Revision: https://phab.mercurial-scm.org/D9195
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 10:28:27 -0700] rev 45731
copy: clarify in help text that `hg co --forget` takes a *destination* file
We had a user who tried to pass a source file. The command then fails
with `<file>: not unmarking as copy - file is not marked as copied`,
so at least it's not just silent, but let's be a little clearer in the
documentation.
Differential Revision: https://phab.mercurial-scm.org/D9214
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Oct 2020 15:57:31 +0200] rev 45730
test: check server error output in `test-pull-bundle.t`
This is useful to debug test failure when they happens.
Differential Revision: https://phab.mercurial-scm.org/D9213
Joerg Sonnenberger <joerg@bec.de> [Tue, 06 Oct 2020 01:51:56 +0200] rev 45729
unbundle: free temporary objects after use
This reduces peak RSS for larger unbundle operations by ~30 Bytes per
changeset on AMD64. This can't be a direct delete for Python 2.7, so
reset the object instead and leave a comment.
The efilesset object can't be deleted as it is referenced by the local
onchangelog function and Python 2.7 rejects a delete on the existance of
a nested scope.
Differential Revision: https://phab.mercurial-scm.org/D9153
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 03:23:17 +0200] rev 45728
changing-files: add a shorthand property to check for copy relevant info
We are going to reuse this change in more place, so we factor it out first.
Differential Revision: https://phab.mercurial-scm.org/D9197
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Oct 2020 17:51:56 +0200] rev 45727
pycompat: add an entry for unnamedtmpfile
I am going to use unnamed temporary files to pass arbitrarily large input data
to worker creating bundles. To do so, I need a unified API that work on py2 and
py3.
Differential Revision: https://phab.mercurial-scm.org/D9211
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Oct 2020 21:47:14 +0200] rev 45726
pycompat: update comment about unnamedtempfile
I found the comment clearer. I end up having to think about this for
`TemporaryFile` and I update that one in the process.
Differential Revision: https://phab.mercurial-scm.org/D9210
Yuya Nishihara <yuya@tcha.org> [Tue, 08 Sep 2020 18:16:24 +0900] rev 45725
revset: add diff(pattern) predicate for "grep --diff"
I find this is useful in GUI log viewer since the tool only needs to support
"log -rREV" command.
This is basic implementation. Windowed search is not implemented since it
wouldn't work pretty well with the smartset API. And filename matcher is
not supported because the syntax isn't determined. My idea is to add handling
of diff(pattern, file(..)) and diff(pattern, follow(..)), which will then be
evolved to a full revset+matcher combinator support:
x & diff(pattern, y & z)
=====
y & z builds (revs(y) & revs(z), matcher(y) & matcher(z))
pair, and narrows the search space of diff()
====================
diff() returns matched (revs, matcher) pair
========================
revs and matcher will be combined respectively by &-operator, and the matcher
will optionally be used to filter "hg log -p" output
The predicate name "diff()" wouldn't be great, but grep() is already used.
Another options I can think of are "grepdiff()" and "containsdiff()".
Naming suggestions are welcome.
Yuya Nishihara <yuya@tcha.org> [Mon, 05 Oct 2020 20:40:39 +0900] rev 45724
stringutil: add function to compile stringmatcher pattern into regexp
Prepares for adding a revset predicate for "grep --diff". The grep logic
needs a regexp object instead of a match function.
Yuya Nishihara <yuya@tcha.org> [Wed, 14 Oct 2020 22:10:48 +0900] rev 45723
py3: fix stringmatcher() to byte-stringify exception message
Spotted while writing regexp variant of stringmatcher().
Yuya Nishihara <yuya@tcha.org> [Mon, 05 Oct 2020 20:53:34 +0900] rev 45722
stringutil: extract helper function that splits stringmatcher() pattern