Sun, 12 Mar 2017 17:04:45 -0700 pycompat: add helper to iterate each char in bytes
Yuya Nishihara <yuya@tcha.org> [Sun, 12 Mar 2017 17:04:45 -0700] rev 31391
pycompat: add helper to iterate each char in bytes
Sun, 12 Mar 2017 19:47:51 -0400 branchmap: fix python 2.6 by using util.buffer() instead of passing bytearray
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 19:47:51 -0400] rev 31390
branchmap: fix python 2.6 by using util.buffer() instead of passing bytearray
Sun, 12 Mar 2017 16:44:01 -0700 rebase: allow rebasing children of wd to wd if a new branch has been set (BC)
Mads Kiilerich <mads@kiilerich.com> [Sun, 12 Mar 2017 16:44:01 -0700] rev 31389
rebase: allow rebasing children of wd to wd if a new branch has been set (BC) The named branch of the leaf changeset can be changed by updating to it, setting the branch, and amending. But previously, there was no good way to *just* change the branch of several linear changes. If rebasing changes with another parent to '.', it would pick up a pending branch change up. But when rebasing changes that have the same parent, it would fail with 'nothing to rebase', even when the branch name was set differently. To fix this, allow rebasing to same parent when a branch has been set.
Sun, 12 Mar 2017 16:41:46 -0700 merge: check current wc branch for 'nothing to merge', not its p1
Mads Kiilerich <mads@kiilerich.com> [Sun, 12 Mar 2017 16:41:46 -0700] rev 31388
merge: check current wc branch for 'nothing to merge', not its p1 The working directory will usually be clean or very clean, and wc will usually have the same branch as its parent. This change will thus usually not make any difference and is done as a separate change to show that. It will be used in a later change.
Sun, 12 Mar 2017 16:26:34 -0700 lock: do not encode result of gethostname on Python 2
Yuya Nishihara <yuya@tcha.org> [Sun, 12 Mar 2017 16:26:34 -0700] rev 31387
lock: do not encode result of gethostname on Python 2 If a hostname contained non-ascii character, str.encode() would first try to decode it to a unicode and raise UnicodeDecodeError.
Sun, 12 Mar 2017 03:33:38 -0400 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:33:38 -0400] rev 31386
py3: prove `hg files --rev` works
Sun, 12 Mar 2017 03:37:45 -0400 tests: make a variable for hg binary location in test-check-py3-commands
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:37:45 -0400] rev 31385
tests: make a variable for hg binary location in test-check-py3-commands The number of which calls in here is starting to get silly.
Sun, 12 Mar 2017 03:28:50 -0400 lock: encode result of gethostname into a bytestring
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:28:50 -0400] rev 31384
lock: encode result of gethostname into a bytestring
Sun, 12 Mar 2017 12:56:12 -0700 config: avoid using a mutable default
Martijn Pieters <mjpieters@fb.com> [Sun, 12 Mar 2017 12:56:12 -0700] rev 31383
config: avoid using a mutable default Nothing *currently* mutates this list, but the moment something does it'll be shared between all config instances. Avoid this eventuality.
Fri, 05 Aug 2016 14:09:04 +0200 localrepo: deprecate 'repo.join' in favor of 'repo.vfs.join'
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 05 Aug 2016 14:09:04 +0200] rev 31382
localrepo: deprecate 'repo.join' in favor of 'repo.vfs.join' localrepo have an insane amount of method. Accessing the feature through the vfs is not really harder and allow us to schedule that method for removal.
Sun, 12 Mar 2017 12:54:11 -0700 pycompat: move imports of cStringIO/io to where they are used
Yuya Nishihara <yuya@tcha.org> [Sun, 12 Mar 2017 12:54:11 -0700] rev 31381
pycompat: move imports of cStringIO/io to where they are used There's no point to import cStringIO as io since we have to select StringIO or BytesIO conditionally.
Sun, 12 Mar 2017 12:17:30 -0700 rbc: empty (and invalid) rbc-names file should give an empty name list
Mads Kiilerich <mads@kiilerich.com> [Sun, 12 Mar 2017 12:17:30 -0700] rev 31380
rbc: empty (and invalid) rbc-names file should give an empty name list An empty file (if it somehow should exist) used to give a list with an empty name. That didn't do any harm, but it was "wrong". Fix that.
Wed, 19 Oct 2016 02:46:35 +0200 rbc: use struct unpack_from and pack_into instead of unpack and pack
Mads Kiilerich <madski@unity3d.com> [Wed, 19 Oct 2016 02:46:35 +0200] rev 31379
rbc: use struct unpack_from and pack_into instead of unpack and pack These functions were introduced in Python 2.5 and are faster and simpler than the old ones ... mainly because we can avoid intermediate buffers: $ python -m timeit -s "_rbcrecfmt='>4sI'" -s 's = "x"*10000' -s 'from struct import unpack' 'unpack(_rbcrecfmt, buffer(s, 16, 8))' 1000000 loops, best of 3: 0.543 usec per loop $ python -m timeit -s "_rbcrecfmt='>4sI'" -s 's = "x"*10000' -s 'from struct import unpack_from' 'unpack_from(_rbcrecfmt, s, 16)' 1000000 loops, best of 3: 0.323 usec per loop $ python -m timeit -s "from array import array" -s "_rbcrecfmt='>4sI'" -s "s = array('c')" -s 's.fromstring("x"*10000)' -s 'from struct import pack' -s "rec = array('c')" 'rec.fromstring(pack(_rbcrecfmt, "asdf", 7))' 1000000 loops, best of 3: 0.364 usec per loop $ python -m timeit -s "from array import array" -s "_rbcrecfmt='>4sI'" -s "s = array('c')" -s 's.fromstring("x"*10000)' -s 'from struct import pack_into' -s "rec = array('c')" -s 'rec.fromstring("x"*100)' 'pack_into(_rbcrecfmt, rec, 0, "asdf", 7)' 1000000 loops, best of 3: 0.229 usec per loop
Sun, 12 Mar 2017 15:27:02 -0400 revlog: use bytes() instead of str() to get data from memoryview
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 15:27:02 -0400] rev 31378
revlog: use bytes() instead of str() to get data from memoryview Fixes `files -v` on Python 3.
Sun, 12 Mar 2017 03:33:22 -0400 util: teach url object about __bytes__
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:33:22 -0400] rev 31377
util: teach url object about __bytes__ __str__ tries to do something reasonable, but someone else more familiar with encoding bugs should check my work.
Sun, 12 Mar 2017 03:31:54 -0400 manifest: ensure paths are bytes (not str) in pure parser
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:31:54 -0400] rev 31376
manifest: ensure paths are bytes (not str) in pure parser
Sun, 12 Mar 2017 03:30:15 -0400 manifest: now that node.bin is available, use it directly
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:30:15 -0400] rev 31375
manifest: now that node.bin is available, use it directly Previously we were getting it through revlog, which is a little unusual.
Sun, 12 Mar 2017 03:29:48 -0400 manifest: use node.bin instead of .decode('hex')
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:29:48 -0400] rev 31374
manifest: use node.bin instead of .decode('hex') The latter doesn't work in Python 3.
Sun, 12 Mar 2017 00:43:20 -0500 manifest: add __next__ methods for Python 3
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:43:20 -0500] rev 31373
manifest: add __next__ methods for Python 3 Python 3 renamed .next() in the iterator protocol to __next__().
Sun, 12 Mar 2017 00:51:00 -0500 files: use native string type to load rev opt from dict
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:51:00 -0500] rev 31372
files: use native string type to load rev opt from dict
Sun, 12 Mar 2017 00:50:44 -0500 store: fix many single-byte ops to use slicing in _auxencode
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:50:44 -0500] rev 31371
store: fix many single-byte ops to use slicing in _auxencode
Mon, 13 Mar 2017 04:06:36 +0900 py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 13 Mar 2017 04:06:36 +0900] rev 31370
py3: add "b" prefix to string literals related to module policy String literals without explicit prefix in __init__.py and policy.py are treated as unicode object on Python3, because these modules are loaded before setup of our specific code transformation (the later module is imported at the beginning of __init__.py). BTW, "modulepolicy" in __init__.py is initialized by "policy.policy". This causes issues below; - checking "policy" value in other modules causes unintentional result For example, "b'py' not in (u'c', u'py')" returns True unintentionally on Python3. - writing "policy" out fails at conversion from unicode to bytes 62939e0148f1 fixed this issue for default code path, but "policy" can be overridden by HGMODULEPOLICY environment variable (it should be rare case for developer using Python3, though). This patch does: - add "b" prefix to all string literals, which are related to module policy, in modules above. - check existence of HGMODULEPOLICY, and overwrite "policy" only if it exists For simplicity, this patch omits checking "supports_bytes_environ", switching os.environ/os.environb, and so on (Yuya agreed this in personal talking)
Sun, 12 Mar 2017 11:47:02 -0700 py3: drop unused aliases to array.array which are replaced with bytearray
Yuya Nishihara <yuya@tcha.org> [Sun, 12 Mar 2017 11:47:02 -0700] rev 31369
py3: drop unused aliases to array.array which are replaced with bytearray
Mon, 13 Mar 2017 00:55:14 +0530 pycompat: default to BytesIO instead of StringIO
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 13 Mar 2017 00:55:14 +0530] rev 31368
pycompat: default to BytesIO instead of StringIO
Sun, 12 Mar 2017 00:48:06 -0500 repoview: specify setattr values as native strings
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:48:06 -0500] rev 31367
repoview: specify setattr values as native strings
Sun, 12 Mar 2017 03:32:38 -0400 revlog: use bytes() to ensure text from _chunks is a reasonable type
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:32:38 -0400] rev 31366
revlog: use bytes() to ensure text from _chunks is a reasonable type
Sun, 12 Mar 2017 00:49:49 -0500 revlog: extract first byte of revlog with a slice so it's portable
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:49:49 -0500] rev 31365
revlog: extract first byte of revlog with a slice so it's portable
Sun, 12 Mar 2017 00:46:59 -0500 revsetlang: slice out single bytes instead of indexing
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:46:59 -0500] rev 31364
revsetlang: slice out single bytes instead of indexing For portability with Python 3.
Sun, 12 Mar 2017 03:29:04 -0400 lock: use %d to format integer into a bytestring
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:29:04 -0400] rev 31363
lock: use %d to format integer into a bytestring
Sun, 12 Mar 2017 00:44:59 -0500 parser: use %d instead of %s for interpolating error position
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:44:59 -0500] rev 31362
parser: use %d instead of %s for interpolating error position Error position is an int, so we should use %d instead of %s. Fixes failures on Python 3.
Sun, 12 Mar 2017 00:44:21 -0500 manifest: unbreak pure-python manifest parsing on Python 3
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:44:21 -0500] rev 31361
manifest: unbreak pure-python manifest parsing on Python 3
Sun, 12 Mar 2017 00:43:47 -0500 context: use portable construction to verify int parsing
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:43:47 -0500] rev 31360
context: use portable construction to verify int parsing
Sun, 12 Mar 2017 01:59:23 -0500 ui: portably bytestring-ify url object
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 01:59:23 -0500] rev 31359
ui: portably bytestring-ify url object
Sun, 12 Mar 2017 00:47:39 -0500 scmutil: fix key generation to portably bytestringify integer
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:47:39 -0500] rev 31358
scmutil: fix key generation to portably bytestringify integer
Sun, 12 Mar 2017 00:42:46 -0500 branchmap: stringify int in a portable way
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:42:46 -0500] rev 31357
branchmap: stringify int in a portable way We actually need a bytes in Python 3, and thanks to our nasty source loader this will portably do the right thing.
Sun, 12 Mar 2017 00:49:19 -0500 branchmap: don't use buffer() on Python 3
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 00:49:19 -0500] rev 31356
branchmap: don't use buffer() on Python 3 This is certainly slower than the Python 2 code, but it works, and we can revisit it later if it's a problem.
Sun, 12 Mar 2017 03:32:21 -0400 py3: use bytearray() instead of array('c', ...) constructions
Augie Fackler <augie@google.com> [Sun, 12 Mar 2017 03:32:21 -0400] rev 31355
py3: use bytearray() instead of array('c', ...) constructions Portable from 2.6-3.6.
Sat, 11 Mar 2017 20:58:26 -0500 summary: don't explicitly str() something we're about to %s
Augie Fackler <augie@google.com> [Sat, 11 Mar 2017 20:58:26 -0500] rev 31354
summary: don't explicitly str() something we're about to %s str() is wrong on Python 3 here, and %s implicitly calls str() anyway, so this was just extra dancing for no reason.
Sat, 11 Mar 2017 20:57:40 -0500 context: implement both __bytes__ and __str__ for Python 3
Augie Fackler <augie@google.com> [Sat, 11 Mar 2017 20:57:40 -0500] rev 31353
context: implement both __bytes__ and __str__ for Python 3 They're very similar, for obvious reasons.
Sat, 11 Mar 2017 20:57:04 -0500 context: work around `long` not existing on Python 3
Augie Fackler <augie@google.com> [Sat, 11 Mar 2017 20:57:04 -0500] rev 31352
context: work around `long` not existing on Python 3 I can't figure out what this branch is even trying to accomplish, and it was introduced in ac89a23ca814 which doesn't really shed any insight into why longs are treated differently from ints.
Sat, 11 Mar 2017 20:53:20 -0500 phases: explicitly evaluate list returned by map
Augie Fackler <augie@google.com> [Sat, 11 Mar 2017 20:53:20 -0500] rev 31351
phases: explicitly evaluate list returned by map On Python 3 map() returns a generator, which bool()s to true even if it had an empty input set. Work around this by using list() on the map() result.
Sat, 11 Mar 2017 20:51:09 -0500 ui: check for --debugger in sys.argv using r-string to avoid bytes on py3
Augie Fackler <augie@google.com> [Sat, 11 Mar 2017 20:51:09 -0500] rev 31350
ui: check for --debugger in sys.argv using r-string to avoid bytes on py3 Our source loader was errantly turning this --debugger into a bytes, which was then causing me to still get a pager when I was using the debugger on py3. That made life hard.
Sun, 12 Mar 2017 22:46:57 +0530 minirst: use bytes.strip instead of str.strip
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 12 Mar 2017 22:46:57 +0530] rev 31349
minirst: use bytes.strip instead of str.strip bytes.strip exists in Python 2.6 and Python 2.7 also.
Sun, 12 Mar 2017 22:27:53 +0530 smcposix: pass unicode as first argument to array.array
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 12 Mar 2017 22:27:53 +0530] rev 31348
smcposix: pass unicode as first argument to array.array This is an instance where we can safely convert the first argument, rest are the cases except one where we are using 'c' which is not there in Python 3. So that needs to be handled differently. This will help in making `hg help` run on Python 3.
Sun, 12 Mar 2017 07:35:13 +0530 util: pass encoding.[encoding|encodingmode] as unicodes
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 12 Mar 2017 07:35:13 +0530] rev 31347
util: pass encoding.[encoding|encodingmode] as unicodes We need to pass str to encode() and decode().
Wed, 08 Mar 2017 16:52:57 -0800 win32text: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:52:57 -0800] rev 31346
win32text: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:52:49 -0800 transplant: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:52:49 -0800] rev 31345
transplant: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:52:42 -0800 shelve: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:52:42 -0800] rev 31344
shelve: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:52:30 -0800 share: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:52:30 -0800] rev 31343
share: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:52:16 -0800 mq: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:52:16 -0800] rev 31342
mq: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:52:06 -0800 largefiles: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:52:06 -0800] rev 31341
largefiles: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:51:57 -0800 keyword: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:51:57 -0800] rev 31340
keyword: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:51:49 -0800 journal: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:51:49 -0800] rev 31339
journal: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:51:43 -0800 histedit: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:51:43 -0800] rev 31338
histedit: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:51:36 -0800 eol: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:51:36 -0800] rev 31337
eol: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:51:25 -0800 convert: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:51:25 -0800] rev 31336
convert: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:53:55 -0800 test-bundle2-remote-changegroup: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:53:55 -0800] rev 31335
test-bundle2-remote-changegroup: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:53:47 -0800 subrepo: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:53:47 -0800] rev 31334
subrepo: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:53:39 -0800 repair: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:53:39 -0800] rev 31333
repair: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
Wed, 08 Mar 2017 16:53:32 -0800 merge: directly use repo.vfs.join
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 16:53:32 -0800] rev 31332
merge: directly use repo.vfs.join The 'repo.join' method is about to be deprecated.
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 tip