Gregory Szorc <gregory.szorc@gmail.com> [Wed, 21 Feb 2018 08:33:50 -0800] rev 36397
sshpeer: move logic for sending a request into a new function
The **args being used to pass arbitrary command arguments is limiting
because it makes it harder to control behavior of the function.
We factor most of _callstream() into a new function that doesn't
use **args.
Differential Revision: https://phab.mercurial-scm.org/D2379
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 19 Feb 2018 15:57:28 -0800] rev 36396
sshpeer: rename _recv and _send to _readframed and _writeframed
Because it is reading and writing a chunk of data with a well-defined
size. "recv" and "send" make it sound like things are a direct proxy to
the underlying pipe, which they aren't.
Differential Revision: https://phab.mercurial-scm.org/D2378
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 21 Feb 2018 13:41:20 -0800] rev 36395
util: add a file object proxy that can read at most N bytes
Sometimes we have data of a known size within a stream. For
performance reasons, we don't want to pre-read this data (we want
to allow consumers to read on demand). For simplicitly reasons,
we don't want callers to necessarily know their data is coming
from within an outer stream and there is a limit to how much
they should read.
The class introduced by this commit provides a very simple proxy
around an underlying file object that allows the consumer to
.read() up to N bytes from the file object. Attempts to read
past this many bytes results in a simulated EOF.
Differential Revision: https://phab.mercurial-scm.org/D2377
Boris Feld <boris.feld@octobus.net> [Mon, 05 Feb 2018 15:03:51 +0100] rev 36394
patches: release the GIL while applying the patch
This will allow multiple threads to apply patches at the same time.
Boris Feld <boris.feld@octobus.net> [Wed, 21 Feb 2018 11:43:12 +0100] rev 36393
perfbranchmap: allow to select the filter to benchmark
Running the branchmap computation on all filter levels can be expensive.
Narrowing the run to some specific filters can speed up benchmarking time when
working only on a subset of filter levels.
Boris Feld <boris.feld@octobus.net> [Wed, 21 Feb 2018 12:13:16 +0100] rev 36392
perfbranchmap: display 'unfiltered' for unfiltered performance
This is slightly clearer than "None" and will help with coming changes to select
the filter level we want timing for.
Augie Fackler <augie@google.com> [Thu, 22 Feb 2018 01:00:57 -0500] rev 36391
py3: two more narrow tests passing
Differential Revision: https://phab.mercurial-scm.org/D2390
Augie Fackler <augie@google.com> [Thu, 22 Feb 2018 00:51:32 -0500] rev 36390
narrowbundle2: more kwargs native string fixes
This gets test-narrow.t to *almost* pass. Something appears to be
borked in producing bundles, but only some of the time? I'm lost, but
this change is at least a clear improvement.
# skip-blame just more r prefixes on strings
Differential Revision: https://phab.mercurial-scm.org/D2389
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 23:24:51 -0500] rev 36389
py3: whitelist another 11 passing tests
This is most of narrow. There's still some buglets at the margins, but
it's pretty good progress for not a lot of work.
Differential Revision: https://phab.mercurial-scm.org/D2388
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 22:49:40 -0500] rev 36388
narrowbundle2: use native string to get kwargs from dict
# skip-blame just some r prefixes on strings
Differential Revision: https://phab.mercurial-scm.org/D2387
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 22:49:15 -0500] rev 36387
narrowbundle2: drop legacy getcgkwargs variable
I think this was around as part of support for some older hg
internals. It's not needed any more.
Differential Revision: https://phab.mercurial-scm.org/D2386
Daniel Ploch <dploch@google.com> [Wed, 21 Feb 2018 20:05:29 -0800] rev 36386
fancyopts: add support for custom multi-arg opts in fancyopts.py
This allows for more complex multi-arg opt logic, such as "--sum 1 --sum 2"
-> 3, "--csv alice,bob --csv charlie" -> ["alice","bob","charlie"]. The
current support for callables is insufficient for this.
This is done by introducing a 'customopt' class which can be extended for
more powerful opts logic. All existing opt-types are converted to use this
class, simplifying the fancyopts() logic.
Differential Revision: https://phab.mercurial-scm.org/D2090
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 11:57:11 -0500] rev 36385
narrowcommands: add some missing strkwargs calls for py3
# skip-blame because it's just r prefixes
Differential Revision: https://phab.mercurial-scm.org/D2367
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 11:56:51 -0500] rev 36384
narrowwirepeer: add some strkwargs to fix a crash on py3
# skip-blame because it's just some r prefixes
Differential Revision: https://phab.mercurial-scm.org/D2366
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 12:03:44 -0500] rev 36383
narrowchangegroup: remove backwards compatibility with old hg
This was missed in the initial import of narrowhg, but was detected by
the Python 3 porting effort once I got enough other things in narrow
fixed.
Differential Revision: https://phab.mercurial-scm.org/D2370
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 19:11:11 -0800] rev 36382
narrowbundle2: replace map() with equivalent list comprehension
The result of this gets used as a list in core code, so the generator
returned by map() on Python 3 is a problem.
Differential Revision: https://phab.mercurial-scm.org/D2369
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 11:58:41 -0500] rev 36381
narrowbundle2: this dict contains native strings, look kws up as such
We could also do a byteskwargs dance, but that seems silly given that
we only need this one element.
Differential Revision: https://phab.mercurial-scm.org/D2368
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 11:56:22 -0500] rev 36380
tests: port extension in test-narrow-expanddirstate.t to Python 3
Differential Revision: https://phab.mercurial-scm.org/D2365
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 10:10:02 -0500] rev 36379
py3: use list comprehensions instead of filter where we need to eagerly filter
These two uses of filter() are then checked for truthiness, but on Python 3:
>>> bool(filter(None, []))
True
So we need to stop depending on that. Fortunately it's easy to replace
the filter with an equivalent list comprehension.
Differential Revision: https://phab.mercurial-scm.org/D2364
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 10:08:35 -0500] rev 36378
narrow: use list comprehension instead of filter for filtering lists
filter() returns a generator on Python 3, which causes these filters
to break things.
Differential Revision: https://phab.mercurial-scm.org/D2363
Augie Fackler <augie@google.com> [Wed, 21 Feb 2018 09:43:35 -0500] rev 36377
py3: whitelist another eight passing tests
Differential Revision: https://phab.mercurial-scm.org/D2362
Martin von Zweigbergk <martinvonz@google.com> [Tue, 06 Feb 2018 08:57:22 -0800] rev 36376
mq: don't reimplement any()
Differential Revision: https://phab.mercurial-scm.org/D2376
Martin von Zweigbergk <martinvonz@google.com> [Tue, 06 Feb 2018 08:55:54 -0800] rev 36375
mq: don't reimplement any()
Differential Revision: https://phab.mercurial-scm.org/D2375
Martin von Zweigbergk <martinvonz@google.com> [Tue, 06 Feb 2018 08:54:36 -0800] rev 36374
strip: don't reimplement any()
Differential Revision: https://phab.mercurial-scm.org/D2374
Martin von Zweigbergk <martinvonz@google.com> [Tue, 06 Feb 2018 08:52:12 -0800] rev 36373
convert: don't reimplement any()
Differential Revision: https://phab.mercurial-scm.org/D2373
Martin von Zweigbergk <martinvonz@google.com> [Tue, 06 Feb 2018 08:49:37 -0800] rev 36372
verify: don't reimplement any()
Differential Revision: https://phab.mercurial-scm.org/D2372
Martin von Zweigbergk <martinvonz@google.com> [Tue, 06 Feb 2018 08:48:05 -0800] rev 36371
walkrepos: don't reimplement any()
Differential Revision: https://phab.mercurial-scm.org/D2371
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Feb 2018 00:25:16 +0530] rev 36370
py3: make sure we open file in bytes mode
Differential Revision: https://phab.mercurial-scm.org/D2360
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Feb 2018 00:24:44 +0530] rev 36369
py3: add b'' to test-ui-color.py
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D2359
Matt Harbison <matt_harbison@yahoo.com> [Tue, 20 Feb 2018 22:03:13 -0500] rev 36368
debuginstall: strip double quotes from editorbin on Windows
The unconditional posix style shlex.split() prior to 94a1ff16f362 handled this.
This isn't mutually exclusive with stripping the quotes in util.findexe()- if
the editor can't be found, this command prints out the string, inside single
quotes.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 20 Feb 2018 21:37:30 -0500] rev 36367
pycompat: correct the shlex.split() proxy method signature in py3
Augie Fackler <augie@google.com> [Tue, 20 Feb 2018 22:23:06 -0500] rev 36366
merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 23:47:53 +0530] rev 36365
convert: don't use type as a variable name
Differential Revision: https://phab.mercurial-scm.org/D2358
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 23:47:15 +0530] rev 36364
convert: don't use bytes as a variable name
Differential Revision: https://phab.mercurial-scm.org/D2357
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 23:46:42 +0530] rev 36363
py3: add a r'' prefix to prevent transformer from adding b''
# skip-blame as only r'' prefix was added
Differential Revision: https://phab.mercurial-scm.org/D2356
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 23:44:41 +0530] rev 36362
py3: use pycompat.byteskwargs in hgext/convert/
Differential Revision: https://phab.mercurial-scm.org/D2355
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 21:45:49 +0530] rev 36361
py3: add b'' prefixes in test-mdiff.py
# skip-blame because we are just adding b''
Differential Revision: https://phab.mercurial-scm.org/D2354
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 21:18:52 +0530] rev 36360
py3: use dict.items() instead of dict.iteritems() in tests
dict.iteritems() is not present in Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2353
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 15:28:54 +0530] rev 36359
py3: add b'' prefixes in test-transplant.t
# skip-blame because we are just adding b''
Differential Revision: https://phab.mercurial-scm.org/D2352
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 15:28:16 +0530] rev 36358
py3: add b'' prefixes in fakepatchtime.py
# skip-blame because we are just adding b''
Differential Revision: https://phab.mercurial-scm.org/D2351
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 15:27:25 +0530] rev 36357
py3: add b'' prefixes in fakedirstatewritetime.py
# skip-blame because we are just adding b''
Differential Revision: https://phab.mercurial-scm.org/D2350
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 15:26:07 +0530] rev 36356
py3: use '%d' to convert integer to bytes
Differential Revision: https://phab.mercurial-scm.org/D2349
Anton Shestakov <av6@dwimlabs.net> [Mon, 19 Feb 2018 12:48:50 +0800] rev 36355
hgweb: show each obsfateentry on its own line
Commits with more than one reason for being obsolete used to just show obsfate
entries all on one line, and that doesn't look good. Let's show each entry on
its own line.
In paper and coal the lines are simply split using a <br> element, and in other
hgweb themes each entry has its own table header. This is done by analogy with
changeset parents and children -- in paper and coal they are all put into one
table row, and everywhere else each one gets a separate row.
Anton Shestakov <av6@dwimlabs.net> [Mon, 19 Feb 2018 12:30:23 +0800] rev 36354
tests: check obsolete changeset with two obsfate entries
It's more interesting to see how a changeset that was both rewritten and split
looks in hgweb.
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 15:53:48 -0500] rev 36353
py3: whitelist another six passing tests
Differential Revision: https://phab.mercurial-scm.org/D2348
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 15:38:29 -0500] rev 36352
lock: delay is numeric, use %d for formatting
Differential Revision: https://phab.mercurial-scm.org/D2347
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 15:23:26 -0500] rev 36351
debugbuilddag: use '%d' instead of str() to get numbered lines
Differential Revision: https://phab.mercurial-scm.org/D2346
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 15:18:07 -0500] rev 36350
tests: add missing b prefixes in test-pending.t
# skip-blame more b prefixes
Differential Revision: https://phab.mercurial-scm.org/D2345
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 14:53:55 -0500] rev 36349
merge: make a copy of dict.items() before mutating the dict during iteration
Differential Revision: https://phab.mercurial-scm.org/D2344
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 14:53:31 -0500] rev 36348
largefiles: give some **opts some strkwargs love
Differential Revision: https://phab.mercurial-scm.org/D2343
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 14:43:55 -0500] rev 36347
wireproto: fix lingering str(exception) with util.forcebytestr(exception)
Differential Revision: https://phab.mercurial-scm.org/D2342
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 14:37:36 -0500] rev 36346
scmutil: fix requires-file isalnum() check on first byte
Slice instead of subscript to get a bytes from a bytes.
# skip-blame just a py3 slice-instead-of-subscript change
Differential Revision: https://phab.mercurial-scm.org/D2341
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 14:29:04 -0500] rev 36345
largefiles: mark headre as bytes regex
Differential Revision: https://phab.mercurial-scm.org/D2340
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 14:28:31 -0500] rev 36344
largfiles: replace filter() with listcomp when result needs to be a list
filter() is a generator on Python 3, but these cases are used as lists.
Differential Revision: https://phab.mercurial-scm.org/D2339
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 14:25:03 -0500] rev 36343
largefiles: make scheme regex a bytes regex
# skip-blame just a b prefix
Differential Revision: https://phab.mercurial-scm.org/D2338
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Feb 2018 13:13:04 +0900] rev 36342
debuginstall: do not parse editor command in posix way on Windows
An editor command is executed by a system shell, which is cmd.exe on Windows.
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Feb 2018 22:13:25 +0900] rev 36341
py3: use bytes() to byte-stringify url object in url.py
Perhaps we'll have to convert it back and forth from/to bytes and unicode
at urllib boundary, but at least util.hidepassword() wants a byte string.
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Feb 2018 22:12:11 +0900] rev 36340
url: show full url of proxy server in debug message
This only fixes the debug message spotted by issue5796.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 00:31:01 +0530] rev 36339
py3: make sure we are doing integer division by using '//'
Differential Revision: https://phab.mercurial-scm.org/D2337
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 00:15:50 +0530] rev 36338
py3: make sure regex is bytes in crecord.py
# skip-blame because we are just adding b''
Differential Revision: https://phab.mercurial-scm.org/D2336
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Feb 2018 00:14:33 +0530] rev 36337
py3: use "%d" for integers instead of "%s"
Differential Revision: https://phab.mercurial-scm.org/D2335
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:22:40 +0530] rev 36336
py3: make sure we open the files in bytes mode
Differential Revision: https://phab.mercurial-scm.org/D2333
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:59:03 -0500] rev 36335
py3: whitelist another three passing tests
Differential Revision: https://phab.mercurial-scm.org/D2318
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:49:29 -0500] rev 36334
manifest: use list(dict) instead of dict.keys() to get a list of keys
Differential Revision: https://phab.mercurial-scm.org/D2317
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:49:11 -0500] rev 36333
manifest: correct the one use of iterkeys() on a dict
As far as I can tell, this is the only iterkeys() in this file that
was actually on a dict. The rest are on custom manifest types.
Differential Revision: https://phab.mercurial-scm.org/D2316
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:43:50 -0500] rev 36332
py3: use default dict iterator instead of iterkeys
These are the easy cases. Some cases in manifest.py will require more
careful inspection.
Differential Revision: https://phab.mercurial-scm.org/D2315
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:35:37 -0500] rev 36331
py3: whitelist five more passing tests
Differential Revision: https://phab.mercurial-scm.org/D2314
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:03:39 -0500] rev 36330
httppeer: headers are native strings
# skip-blame just marking some native strings
Differential Revision: https://phab.mercurial-scm.org/D2313
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:03:27 -0500] rev 36329
hgweb: header dict entries are native strings
# skip-blame just marking some native strings
Differential Revision: https://phab.mercurial-scm.org/D2312
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:03:05 -0500] rev 36328
keepalive: headers are native strings, mark them as such
# skip-blame just marking some native strings
Differential Revision: https://phab.mercurial-scm.org/D2311
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:22:15 +0530] rev 36327
py3: use range instead of xrange on py3 in tests/test-ui-verbosity.py
xrange is not present on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2332
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:20:57 +0530] rev 36326
py3: use range instead of xrange in tests/test-revset2.t
xrange is not present on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2331
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:20:21 +0530] rev 36325
py3: use range instead of xrange in tests/test-mq-qimport.t
xrange is not present on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2330
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:19:10 +0530] rev 36324
py3: use range instead of xrange in tests/test-issue4074.t
xrange in not present on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2329
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:18:24 +0530] rev 36323
py3: use range instead of xrange in tests/test-convert-mtn.t
xrange in not present on Python 3.
This change will make the test a bit slower on Python 2.
Differential Revision: https://phab.mercurial-scm.org/D2328
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:28:45 +0530] rev 36322
py3: use range instead of xrange in tests/test-commandserver.t
xrange is not present on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2327
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 18:07:12 +0530] rev 36321
py3: use range instead of xrange in tests/test-walk.t
xrange in not present in python 3.
Differential Revision: https://phab.mercurial-scm.org/D2326
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 17:43:12 +0530] rev 36320
py3: use range instead of xrange in tests/test-mq-missingfiles.t
xrange is not present in python 3.
Differential Revision: https://phab.mercurial-scm.org/D2325
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 17:42:33 +0530] rev 36319
py3: use range instead of xrange on py3 in tests/test-filecache.py
xrange is not present on py3.
Differential Revision: https://phab.mercurial-scm.org/D2324
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 17:41:56 +0530] rev 36318
py3: use range instead on xrange on py3 in tests/test-atomictempfile.py
xrange is not available on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2323
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 17:37:47 +0530] rev 36317
py3: add b'' prefix in test-mq-qrefresh-replace-log-message.t
# ski-blame as we just added b''
Differential Revision: https://phab.mercurial-scm.org/D2322
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 17:36:52 +0530] rev 36316
py3: add b'' prefixes in test-mq-eol.t
# skip-blame because we are just adding b''
Differential Revision: https://phab.mercurial-scm.org/D2321
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 17:35:44 +0530] rev 36315
py3: explicitly convert result of dict.items() into list
Differential Revision: https://phab.mercurial-scm.org/D2320
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Feb 2018 17:35:13 +0530] rev 36314
py3: use pycompat.byteskwargs() to convert opts keys to bytes
Differential Revision: https://phab.mercurial-scm.org/D2319
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:02:33 -0500] rev 36313
wireprotoserver: py3 helpfully calls adds HTTP_ to CONTENT_LENGTH
Just handle both with a membership check, preferring the HTTP_
namespaced version. Sigh.
Differential Revision: https://phab.mercurial-scm.org/D2310
Augie Fackler <augie@google.com> [Sun, 18 Feb 2018 00:01:43 -0500] rev 36312
tests: port inline Python in test-http-branchmap.t to Python 3
Differential Revision: https://phab.mercurial-scm.org/D2309
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 22:52:24 -0500] rev 36311
hgweb_mod: partially undo 8afc25e7effc to fix py3
We now bytes-ify the entire request, so this is wrong.
Differential Revision: https://phab.mercurial-scm.org/D2308
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 22:39:38 -0500] rev 36310
tags: don't feed both int and None to min()
They're not comparable on Python 3, and we can just map None to 0.
Differential Revision: https://phab.mercurial-scm.org/D2307
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 22:39:12 -0500] rev 36309
tests: fix get-with-headers.py on python3 when writing to stdout
Differential Revision: https://phab.mercurial-scm.org/D2306
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 22:38:53 -0500] rev 36308
webcommands: use pycompat.strkwargs as needed
Differential Revision: https://phab.mercurial-scm.org/D2305
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 22:38:25 -0500] rev 36307
webcommands: unpack contents of length-1 dict portably
((k,v),) = dict.items() was suggested by some friends, but I feel like
that's maybe too clever?
Differential Revision: https://phab.mercurial-scm.org/D2304
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 22:37:35 -0500] rev 36306
bundle2: use pycompat.strkwargs as needed
Differential Revision: https://phab.mercurial-scm.org/D2303
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 21:47:49 -0500] rev 36305
tests: add b prefixes to test-rebase-dest.t
# skip-blame just b prefixes
Differential Revision: https://phab.mercurial-scm.org/D2302
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 21:47:26 -0500] rev 36304
rebase: sort roots by revision
Previously we were sorting them by whatever implicit sort order we got
between changectx instances. Sorting by rev at least makes some sense,
so I chose that.
Differential Revision: https://phab.mercurial-scm.org/D2301
Augie Fackler <augie@google.com> [Sat, 17 Feb 2018 21:25:14 -0500] rev 36303
httppeer: use %d to format int
Differential Revision: https://phab.mercurial-scm.org/D2300
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Feb 2018 17:24:29 +0900] rev 36302
extensions: reject any unicode strings in tables before loading
This allows us to test hg on Python 3 without disabling third-party
extensions which could pollute cmdtable for example.