Sun, 08 Apr 2018 11:23:55 +0900 py3: system-stringify repr(frame)
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 11:23:55 +0900] rev 37474
py3: system-stringify repr(frame) That's the Py3 requirement.
Sun, 08 Apr 2018 11:21:58 +0900 wireproto: show unknown id and flags in repr(frame)
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 11:21:58 +0900] rev 37473
wireproto: show unknown id and flags in repr(frame) Perhaps we'll want it for debugging.
Sun, 08 Apr 2018 11:14:47 +0900 wireproto: fix repr(frame) to not crash by unknown type id
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 11:14:47 +0900] rev 37472
wireproto: fix repr(frame) to not crash by unknown type id Follows up 5ef2da00e935.
Sun, 08 Apr 2018 15:39:08 +0900 py3: use s.startswith() instead of s[n] while parsing patches
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 15:39:08 +0900] rev 37471
py3: use s.startswith() instead of s[n] while parsing patches I know 'bytes[n] in bytes' magically works, but I'm tired of finding which one breaks the tests.
Sun, 08 Apr 2018 15:32:09 +0900 py3: do not try to byte-stringify None in cmdutil.tryimportone()
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 15:32:09 +0900] rev 37470
py3: do not try to byte-stringify None in cmdutil.tryimportone() It's a debug message, so just use '' instead.
Sun, 08 Apr 2018 15:22:30 +0900 py3: work around weird handling of bytes/unicode in decode_header()
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 15:22:30 +0900] rev 37469
py3: work around weird handling of bytes/unicode in decode_header() Basically decode_header() works as follows, and on Python 3, email headers ARE UNICODE. def decode_header(header): if not ecre.search(header): # ecre is unicode regexp return [(header, None)] # so header is unicode string ... decode header into [(bytes_data, unicode_charset_name)] return collapsed
Sun, 08 Apr 2018 15:03:00 +0900 py3: use system string to access email headers
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 15:03:00 +0900] rev 37468
py3: use system string to access email headers
Sun, 08 Apr 2018 14:59:12 +0900 py3: fix string issues of email message in test-import.t
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 14:59:12 +0900] rev 37467
py3: fix string issues of email message in test-import.t - payload can be bytes - headers must be unicode on Python 3 - need to call msg.as_bytes() on Python 3, but msg.as_string() on Python 2, where bytes(msg) magic works
Sun, 08 Apr 2018 14:46:24 +0900 py3: use lower-cased module 'email.message' in test-import.t
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 14:46:24 +0900] rev 37466
py3: use lower-cased module 'email.message' in test-import.t
Sun, 08 Apr 2018 15:41:40 +0900 py3: drop b'' from error message of fancyopts
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Apr 2018 15:41:40 +0900] rev 37465
py3: drop b'' from error message of fancyopts
Sat, 07 Apr 2018 21:26:37 +0900 procutil: drop unused 'newlines' option from popen*() (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 21:26:37 +0900] rev 37464
procutil: drop unused 'newlines' option from popen*() (API) It's unlikely for us to use the universal_newlines option.
Sat, 07 Apr 2018 21:23:42 +0900 procutil: make explainexit() simply return a message (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 21:23:42 +0900] rev 37463
procutil: make explainexit() simply return a message (API) Almost all callers want it.
Sat, 07 Apr 2018 21:21:03 +0900 procutil: do not convert return code of signal exit to positive number (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 21:21:03 +0900] rev 37462
procutil: do not convert return code of signal exit to positive number (API) The docstring states that "codes from kill are negative", and it doesn't make sense to make exit/signal code ambiguous. .. api:: ``hook.hook()`` and ``hook.runhooks()`` may return a negative integer to denote that the process was killed by signal.
Sat, 07 Apr 2018 21:17:50 +0900 procutil: fix error message of tempfile filter
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 21:17:50 +0900] rev 37461
procutil: fix error message of tempfile filter First, we need to use procutil.system() to get an exit code compatible with explainexit(). Second, explainexit() returns (msg, code) tuple.
Sat, 07 Apr 2018 21:14:16 +0900 procutil: unify platform.explainexit()
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 21:14:16 +0900] rev 37460
procutil: unify platform.explainexit() Since 4368f582c806 "use subprocess instead of os.system", posix.explainexit() is the superset of Windows implementation.
Sat, 07 Apr 2018 21:09:21 +0900 procutil: rewrite popen() as a subprocess.Popen wrapper (issue4746) (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 21:09:21 +0900] rev 37459
procutil: rewrite popen() as a subprocess.Popen wrapper (issue4746) (API) os.popen() of Python 3 is not the popen() we want. First, it doesn't accept command in bytes. Second, a returned stream is always wrapped by TextIO. So we have to reimplement our popen(). Fortunately, this fixes the bug 4746 since ours returns an exit code compatible with explainexit(). .. api:: ``procutil.popen()`` no longer supports text mode I/O.
Sat, 07 Apr 2018 20:50:38 +0900 procutil: always popen() in binary mode
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 20:50:38 +0900] rev 37458
procutil: always popen() in binary mode On Python 3, non-binary stream is useless. Let's convert line ending by ourselves. Note that we don't need fromnativeeol() in patch._externalpatch() since any whitespace characters are rstrip()-ed.
Sat, 07 Apr 2018 13:46:32 +0900 py3: byte-stringify test-import.t
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 13:46:32 +0900] rev 37457
py3: byte-stringify test-import.t Still the test doesn't pass. # skip-blame because just adding some b''
Sat, 07 Apr 2018 13:42:37 +0900 py3: convert parsed message items to bytes in patch.extract()
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 13:42:37 +0900] rev 37456
py3: convert parsed message items to bytes in patch.extract() Appears that BytesParser() parses bytes into unicode, sigh.
Sat, 07 Apr 2018 13:21:59 +0900 py3: silence warning about deprecation of imp module
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Apr 2018 13:21:59 +0900] rev 37455
py3: silence warning about deprecation of imp module Well, we could fix that, but we aren't yet to reach the state caring about deprecation on the Python 3 line. So let's silence it for now to fix tons of "minor" Py2/3 incompatibilities by relying on our test suite.
Sat, 07 Apr 2018 00:00:33 -0700 tests: add another full hex node in plain text
Martin von Zweigbergk <martinvonz@google.com> [Sat, 07 Apr 2018 00:00:33 -0700] rev 37454
tests: add another full hex node in plain text Should have been part of D3168. Differential Revision: https://phab.mercurial-scm.org/D3186
Thu, 05 Apr 2018 16:50:19 -0700 infinitepush: look up bookmarks only among bookmarks
Martin von Zweigbergk <martinvonz@google.com> [Thu, 05 Apr 2018 16:50:19 -0700] rev 37453
infinitepush: look up bookmarks only among bookmarks Differential Revision: https://phab.mercurial-scm.org/D3165
Fri, 06 Apr 2018 10:48:11 -0700 destutil: look up bookmarks only among bookmarks
Martin von Zweigbergk <martinvonz@google.com> [Fri, 06 Apr 2018 10:48:11 -0700] rev 37452
destutil: look up bookmarks only among bookmarks Differential Revision: https://phab.mercurial-scm.org/D3164
Fri, 06 Apr 2018 10:49:43 -0700 discovery: look up bookmarks only among bookmarks
Martin von Zweigbergk <martinvonz@google.com> [Fri, 06 Apr 2018 10:49:43 -0700] rev 37451
discovery: look up bookmarks only among bookmarks Differential Revision: https://phab.mercurial-scm.org/D3163
Fri, 06 Apr 2018 11:29:30 -0700 bookmarks: introduce a repo._bookmarks.changectx(mark) method and use it
Martin von Zweigbergk <martinvonz@google.com> [Fri, 06 Apr 2018 11:29:30 -0700] rev 37450
bookmarks: introduce a repo._bookmarks.changectx(mark) method and use it Many places were doing repo[mark], which usually works, but it's slightly incorrect: if the bookmark has a name that matches a full hex nodeid of another node, then the context for the other node will be returned instead. Also, I'm about to remove support for repo[<namespace thing>] :) Differential Revision: https://phab.mercurial-scm.org/D3162
Sun, 25 Mar 2018 18:34:07 +0900 revlog: detect pseudo file nodeids to raise WdirUnsupported exception
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Mar 2018 18:34:07 +0900] rev 37449
revlog: detect pseudo file nodeids to raise WdirUnsupported exception Again, I'm not sure if this is the right thing, but adding a few more pseudo hashes wouldn't be any worse than the current state. Differential Revision: https://phab.mercurial-scm.org/D2942
Sun, 25 Mar 2018 18:31:22 +0900 node: rename wdirnodes to clarify they are for manifest/filelogs
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Mar 2018 18:31:22 +0900] rev 37448
node: rename wdirnodes to clarify they are for manifest/filelogs Differential Revision: https://phab.mercurial-scm.org/D2941
Sun, 25 Mar 2018 18:27:43 +0900 workingctx: build _manifest on filenode() or flags() request
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Mar 2018 18:27:43 +0900] rev 37447
workingctx: build _manifest on filenode() or flags() request I'm not sure if this is the best workaround, but this fixes the following exception: AttributeError: 'workingctx' object has no attribute '_manifestdelta' The short hash '303030303030' seen in the test is node.modifiednodeid. Differential Revision: https://phab.mercurial-scm.org/D2940
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 +3000 +10000 tip