Kyle Lippincott <spectral@google.com> [Wed, 16 May 2018 14:59:32 -0700] rev 38161
narrow: only wrap dirstate functions once, instead of per-reposetup
chg will call reposetup multiple times, and we would end up double-wrapping (or
worse) the dirstate functions; this can cause issues like OSError 'No such file
or directory' during rebase operations, when we go to double-delete our
narrowspec backup file.
Differential Revision: https://phab.mercurial-scm.org/D3559
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 00:25:18 +0530] rev 38160
state: temporary silence pyflakes warning by removing variable assignment
The variable 'version' is going to be used in upcoming series where we will be
using the version number to read a certain state file. However currently,
pyflakes fails because of the variable not being used. Let's remove the
assignment temporarily so that buildbots and test-suite is happy until I iterate
over remaining part of the series.
Differential Revision: https://phab.mercurial-scm.org/D3641
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 00:22:23 +0530] rev 38159
state: fix usage of an unassigned variable
The variable iv was used in earlier iterations of the patches and was dropped
since we made sure 'version' is always int. This usage of 'iv' should have been
replaced by 'version' in the original patch only.
Differential Revision: https://phab.mercurial-scm.org/D3640
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 18:53:03 +0530] rev 38158
py3: add b'' prefixes in tests/test-revset2.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3637
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 21 May 2018 23:26:53 +0530] rev 38157
py3: use encoding.strfromlocal() instead of pycompat.sysstr()
opts['dateformat'] is provided by the user and can be encoded in local encoding.
Thanks to Yuya for catching.
Differential Revision: https://phab.mercurial-scm.org/D3642
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 May 2018 23:05:18 -0400] rev 38156
tests: stabilize test-patch.t on Windows
$PYTHON needs to be quoted when invoking with cmd.exe, because the value expands
to c:/Python27/python.exe, which seems to be interpreted as 'c' being a command.
We can't just convert to '\', because there are a few places that run $PYTHON
directly in MSYS. If unquoted there, it results in c:Python27python.exe being
run. I wonder if we should bake the quotes into the environment variable to
avoid this.
It also wasn't happy with the quoting around exit1.py:
c:/Python27/python.exe: can't open file ''$TESTTMP/d/exit1.py'': [Errno 22] Invalid argument
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 May 2018 23:04:28 -0400] rev 38155
githelp: lowercase the start of output messages for consistency
I left 'Mercurial' as a proper name capitalized.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 May 2018 22:57:05 -0400] rev 38154
githelp: rewrite a Yoda conditional
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 May 2018 22:55:17 -0400] rev 38153
githelp: make several strings localizable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 May 2018 22:41:55 -0400] rev 38152
githelp: cleanly abort if the `svn` command is unknown
Previously, the warning was lost above the sea of KeyError stacktrace output.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 May 2018 22:32:15 -0400] rev 38151
githelp: fail gracefully in a couple cases where arguments are missing
I didn't bother adding tests because the other commands that already handled
missing arguments don't test these edge cases. I didn't read over all of the
code, rather I scanned for `args` not being checked before indexing.
Paul Morelle <paul.morelle@octobus.net> [Wed, 07 Mar 2018 12:00:58 +0100] rev 38150
revlog: isgooddeltainfo takes the whole revinfo object
Future changes will need other information about te revision.
Paul Morelle <paul.morelle@octobus.net> [Wed, 07 Mar 2018 12:00:07 +0100] rev 38149
revlog: make variable name 'd' more explicit in _isgooddeltainfo
d -> deltainfo
Paul Morelle <paul.morelle@octobus.net> [Thu, 19 Apr 2018 07:57:06 +0200] rev 38148
debugdeltachain: r.start and r.length can be retrieved outside the loop
Paul Morelle <paul.morelle@octobus.net> [Fri, 04 May 2018 15:00:55 +0200] rev 38147
revlog: in _getcandidaterevs, shorten revlog._generaldelta to gdelta
Augie Fackler <augie@google.com> [Sat, 19 May 2018 14:24:36 -0400] rev 38146
pathencode: remove unused variable
Caught by Yuya during review of 92ac9cf78dba.
Differential Revision: https://phab.mercurial-scm.org/D3618
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 18:41:24 +0530] rev 38145
py3: add r'' prefixes to fix kwargs handling in hgext/sparse.py
This fixes two of sparse tests which were failing on Python 3.
# skip-blame because just r'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3634
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 17:39:09 +0530] rev 38144
py3: use bytes in tests/printenv.py
This patch add b'' prefixes and adds some .encode() calls to convert str to
bytes on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D3633
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 17:37:07 +0530] rev 38143
py3: use stringutil.pprint() to prevent b'' prefixes in output
This patch uses stringutil.pprint to print a list with bytes in it to prevent
the b'' prefixes in the output.
Differential Revision: https://phab.mercurial-scm.org/D3632
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 17:35:57 +0530] rev 38142
py3: use pycompat.fsencode to convert path to bytes
Differential Revision: https://phab.mercurial-scm.org/D3631
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 17:34:53 +0530] rev 38141
py3: add b'' prefixes in tests/test-ssh.t and tests/test-ssh-bundle1.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3630
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 17:33:18 +0530] rev 38140
py3: add b'' prefixes in contrib/hg-ssh
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3629
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 18 May 2018 16:28:45 +0530] rev 38139
state: write the version number in plain text on top of state files
We will soon be using CBOR format to write the data in state files. But we
should not write the version number of the state files in CBOR format and we
should rather write it in plain text because in future we can change the format
of state files and we should be able to parse the version number of state file
without requiring to understand a certain format.
This will help us in making sure we have a good compatibility story with other
versions of state files.
Differential Revision: https://phab.mercurial-scm.org/D3579
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 18 May 2018 16:34:19 +0530] rev 38138
state: set canonical=True to write deterministically
Passing canonical=True to cbor.dump() will help in writing the data
deterministically. This will sort all the sets and dicts before writing to the
file. Thanks indygreg for recommending to use it.
Differential Revision: https://phab.mercurial-scm.org/D3578
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 16:31:16 +0530] rev 38137
state: don't have a dict like interface for cmdstate class
This patch changes the cmdstate class to stop having a dict like interface and
delete the __nonzero__ function. After this patch, the save fuction takes a dict
to store the data and read function returns a dict of the data stored.
Differential Revision: https://phab.mercurial-scm.org/D3572
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Feb 2018 17:20:22 +0530] rev 38136
state: import the file to write state files from evolve extension
The current way of writing state files is very obscure with each state file
having it's own format to store state files. There is no centralized way to
write state files in a good format. Moreover the current state files are not
extensible, you cannot add more data to store in state files in reliable ways.
To solve the problem, I wrote my own serialization and deserialization format,
looked into existing formats like Protobuf, MessagePack, JSON but CBOR looks
very promising and is suggested by people in the community.
The current interface to store state files is to directly write data in files
when things abort. Using the class imported by this commit, we can create
objects which has a dict like interface and can store data on the object and
store it on the file when things abort.
The evolve extension is using the state file for `evolve`, `grab` commands and
using it for resolution of orphaness, phase-divergence and content-divergence.
The file is moved from changeset e4ac2e2c2086f977afa35e23a62f849e9305a225 of the
evolve extension which is also tagged as 7.3.0.
The following changes are made to the file while moving to core:
* import util from current directory as this file in mercurial/ now
* make cmdstate class extend object
* removed mutable default value for opts in cmdstate.__init__
* some doc changes to replace out of core things with in-core ones
evolve extension can be found at https://bitbucket.org/marmoute/mutable-history
Differential Revision: https://phab.mercurial-scm.org/D2591
Paul Morelle <paul.morelle@octobus.net> [Mon, 14 May 2018 13:05:14 +0200] rev 38135
revlog: suggest other parent when a parent was refused for a delta (issue5481)
Without aggressivemergedeltas, ensure that when we decline the closest parent
(by revision number), the other parent is examined too.
Augie Fackler <augie@google.com> [Mon, 14 May 2018 22:02:44 -0400] rev 38134
status: add default of --terse=u to tweakdefaults (BC)
This is in line with both Git and Subversion, and strikes me as a more
humane behavior.
Test output changes are expected once you read test-status.t, and I
feel like we've still got adequate coverage on things.
Differential Revision: https://phab.mercurial-scm.org/D3628
Augie Fackler <augie@google.com> [Mon, 14 May 2018 22:01:27 -0400] rev 38133
status: add a config knob for setting default of --terse
I want --terse=u basically 100% of the time, but there's not a good
way to do that before this patch.
I'm very unhappy with how the default value for --terse looks rigt
now, but it does *work*. The alternative would be to define an
"optional string" flag type using fancyopts.customopt and then use
that, leaving the default as None. Does anyone have a strong
preference for that, or a better idea?
Differential Revision: https://phab.mercurial-scm.org/D3627
Augie Fackler <augie@google.com> [Sat, 19 May 2018 16:50:30 -0400] rev 38132
tests: port inline extensions in test-obsolete.t to Python 3
Still some lingering failure in here, but it's much better.
Differential Revision: https://phab.mercurial-scm.org/D3626
Augie Fackler <augie@google.com> [Sat, 19 May 2018 16:22:15 -0400] rev 38131
py3: consolidate down some (case ...) entries
Differential Revision: https://phab.mercurial-scm.org/D3625
Augie Fackler <augie@google.com> [Sat, 19 May 2018 16:21:53 -0400] rev 38130
py3: re-sort test whitelist
Differential Revision: https://phab.mercurial-scm.org/D3624
Augie Fackler <augie@google.com> [Sat, 19 May 2018 16:02:39 -0400] rev 38129
tests: fix test-subrepo-paths.t on Python 3
The Python 3 group reference error message is a little more helpful,
so we'll allow the extra output. I tried matching this with an (re)
line, but decided it wasn't worth the effort.
Differential Revision: https://phab.mercurial-scm.org/D3623
Augie Fackler <augie@google.com> [Sat, 19 May 2018 15:53:31 -0400] rev 38128
tests: fix test-parseindex2 on Python 3
parsers.versionerrortext is a sysstr, but it's only ever used in this
test on the Python side, so I'm okay to just handle it like this.
Differential Revision: https://phab.mercurial-scm.org/D3622
Augie Fackler <augie@google.com> [Sat, 19 May 2018 15:47:32 -0400] rev 38127
tests: use [(] instead of \( to avoid warning on py3
From a recent test run of mine:
run-tests.py:1633: DeprecationWarning: invalid escape sequence '\('
This lets us encode the expectation without the badness.
Differential Revision: https://phab.mercurial-scm.org/D3621
Augie Fackler <augie@google.com> [Sat, 19 May 2018 15:15:51 -0400] rev 38126
tests: fix test-patch.t on pickier /bin/sh implementations
FreeBSD sh(1) doesn't accept -d, so we weren't testing what we
expected there. Let's just use a simple Python script instead.
Differential Revision: https://phab.mercurial-scm.org/D3620
Augie Fackler <augie@google.com> [Sat, 19 May 2018 15:14:56 -0400] rev 38125
patch: add debug message to show external patch tool invocation
Differential Revision: https://phab.mercurial-scm.org/D3619
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 20:04:54 +0530] rev 38124
py3: add 13 new passing tests to whitelist
Differential Revision: https://phab.mercurial-scm.org/D3615
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:59:21 +0530] rev 38123
py3: check for None before comparing with integers
Comparing None and integers on Python 3 is not allowed and raise error.
Differential Revision: https://phab.mercurial-scm.org/D3614
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:58:35 +0530] rev 38122
py3: use `except error as e` instead of `except error, e`
The latter throws SyntaxError on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D3613
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:56:00 +0530] rev 38121
py3: use pycompat.fsencode() to convert tempfile name to bytes
Differential Revision: https://phab.mercurial-scm.org/D3612
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:55:30 +0530] rev 38120
py3: add b'' prefixes in tests/test-parseindex.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3611
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:52:56 +0530] rev 38119
py3: fix .write() calls in few tests
This patch adds b'' prefixes to make sure we write bytes and add `and None` in
the end to suppress the output by .write() calls.
Differential Revision: https://phab.mercurial-scm.org/D3610
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:51:14 +0530] rev 38118
py3: bytestr() bytes to get bytechar while iterating on it
Iterating on bytes give you ascii values instead of bytechr so we need to wrap
the bytes in pycompat.bytestr() to get bytechr while iterating.
Differential Revision: https://phab.mercurial-scm.org/D3609
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:49:07 +0530] rev 38117
py3: slice over bytes to prevent getting the ascii values
Differential Revision: https://phab.mercurial-scm.org/D3608
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:48:26 +0530] rev 38116
py3: use utils.stringutil.forcebytestr to convert error to bytes
Differential Revision: https://phab.mercurial-scm.org/D3607
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:47:20 +0530] rev 38115
py3: make sure we open files in bytes mode
we internally deal with bytes and should read files in bytes mode.
Differential Revision: https://phab.mercurial-scm.org/D3606
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:45:53 +0530] rev 38114
py3: add b'' prefix in test/test-fileset.t
# skip-blame because just a b'' prefix
Differential Revision: https://phab.mercurial-scm.org/D3605
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:43:13 +0530] rev 38113
py3: suppress the output from .write() calls in few tests
Differential Revision: https://phab.mercurial-scm.org/D3604
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:42:18 +0530] rev 38112
py3: use print as a function in tests/test-parseindex.t
Differential Revision: https://phab.mercurial-scm.org/D3603
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:41:02 +0530] rev 38111
py3: use print as a function in tests/test-pull.t
Differential Revision: https://phab.mercurial-scm.org/D3602
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:33:36 +0530] rev 38110
py3: add b'' prefixes in tests/test-rebuildstate.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3601
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:32:57 +0530] rev 38109
py3: add b'' prefixes in tests/test-progress.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3600
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:32:24 +0530] rev 38108
py3: add b'' prefixes in tests/test-profile.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3599
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:31:15 +0530] rev 38107
py3: add b'' prefixes in tests/test-pager.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3598
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:30:20 +0530] rev 38106
py3: add b'' prefixes in tests/test-hgrc.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3597
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:28:52 +0530] rev 38105
py3: add b'' prefixes in tests/test-extensions-afterloaded.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3596
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:27:57 +0530] rev 38104
py3: add b'' prefixes in tests/test-custom-filters.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3595
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:26:38 +0530] rev 38103
py3: add b'' prefixes in tests/test-bugzilla.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3594
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:25:18 +0530] rev 38102
py3: fix kwargs handling in hgext/split.py
Differential Revision: https://phab.mercurial-scm.org/D3593
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:24:36 +0530] rev 38101
py3: add b'' prefixes in hgext/convert/subversion.py
Litrerals starting with triple quotes or prepended with r'' do not get
prepended by b'' by the transformer.
# skip-blame because just adding b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3592
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:23:03 +0530] rev 38100
py3: use '%d' for integers in hgext/infinitepush/__init__.py
Differential Revision: https://phab.mercurial-scm.org/D3591
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:21:21 +0530] rev 38099
py3: make sure we pass str to date.strftime()
Differential Revision: https://phab.mercurial-scm.org/D3590
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 21:47:59 +0530] rev 38098
py3: use pycompat.bytestr() to convert str into bytes
the keys of opts are str here, so we have to convert it to bytes before passing
into error.Abort()
Differential Revision: https://phab.mercurial-scm.org/D3617