log

age author description
Sun, 17 Nov 2019 01:34:52 -0500 Matt Harbison debugextensions: gracefully handle missing __file__ attributes
Sun, 17 Nov 2019 01:00:06 -0500 Matt Harbison debuginstall: gracefully handle missing __file__ attributes
Sat, 16 Nov 2019 16:25:28 +0900 Yuya Nishihara typing: add pseudo localstr.__init__() to help pytype
Sat, 16 Nov 2019 15:24:49 +0900 Yuya Nishihara typing: fix argument type of encoding.localstr()
Sat, 16 Nov 2019 16:09:39 +0900 Yuya Nishihara typing: suppress error of py2 encoding.strtolocal() and .strfromlocal()
Sat, 16 Nov 2019 15:34:47 +0900 Yuya Nishihara typing: constrain argument/return types of encoding.toutf8b()
Sat, 16 Nov 2019 15:27:12 +0900 Yuya Nishihara typing: fix argument type of encoding.tolocal() and .fromutf8b()
Sat, 16 Nov 2019 15:10:41 +0900 Yuya Nishihara typing: fix forward reference in _Tlocalstr type bound
Sat, 16 Nov 2019 15:43:21 +0900 Yuya Nishihara encoding: make getcols() raise exception explicitly
Sat, 16 Nov 2019 12:19:43 -0500 Matt Harbison setup: conditionalize access to `sys.dllhandle` when building extensions
Wed, 13 Nov 2019 22:40:32 +0100 Kim Alvefur zeroconf: fix traceback under py3 stable
Sat, 16 Nov 2019 11:48:47 -0500 Matt Harbison setup: use bytes for assumed python version
Sat, 16 Nov 2019 11:42:27 -0500 Matt Harbison setup: combine two contiguous string literals
Thu, 14 Nov 2019 13:18:22 -0800 Martin von Zweigbergk util: remove datapath and swith users over to resourceutil
Thu, 14 Nov 2019 12:41:33 -0800 Martin von Zweigbergk i18n: get datapath directly from resourceutil
Thu, 14 Nov 2019 12:33:10 -0800 Martin von Zweigbergk util: move definition of datapath to resourceutil
Thu, 14 Nov 2019 11:52:22 -0800 Martin von Zweigbergk procutil: move mainfrozen() to new resourceutil.py
Thu, 14 Nov 2019 17:36:01 -0800 Martin von Zweigbergk defaults: rename default.d to defaultrc to make it a valid package name
Thu, 14 Nov 2019 17:30:52 -0800 Martin von Zweigbergk help: remove references to default.d/ from user-facing docs
Sun, 17 Nov 2019 19:55:01 +0100 Manuel Jacob cffi: fix build on Python 3 stable
Sat, 16 Nov 2019 20:08:35 +0100 Pierre-Yves David pure: use string for another exception in the pure version of base85 stable
Sat, 16 Nov 2019 20:07:49 +0100 Pierre-Yves David pure: use string for exception in the pure version of base85 stable
Thu, 14 Nov 2019 10:47:04 +0100 Denis Laxalde bisect: replace try:/finally: by a "restore_state" context manager
Wed, 30 Oct 2019 19:19:57 -0400 Jordi Gutiérrez Hermoso histedit: render a rolled up description using the proper roll colours
Wed, 30 Oct 2019 19:34:57 -0400 Jordi Gutiérrez Hermoso histedit: define new colour pairs for roll action
Wed, 30 Oct 2019 19:27:09 -0400 Jordi Gutiérrez Hermoso histeditrule: split __bytes__ property into prefix and desc
Fri, 15 Nov 2019 22:22:55 +0900 Yuya Nishihara merge with stable
Thu, 14 Nov 2019 20:40:54 -0800 Gregory Szorc packaging: convert to UNIX line endings
Thu, 14 Nov 2019 20:35:11 -0800 Gregory Szorc black: blacken scripts
Tue, 12 Nov 2019 10:17:59 -0500 Augie Fackler dirs: resolve fuzzer OOM situation by disallowing deep directory hierarchies
Thu, 14 Nov 2019 14:14:11 -0800 Martin von Zweigbergk py3: use native string for 'macosx_app'
Thu, 14 Nov 2019 14:07:36 -0800 Martin von Zweigbergk py3: drop an unnecessary fsencode() before comparing with constant
Thu, 14 Nov 2019 14:03:02 -0800 Martin von Zweigbergk py3: use native string as fallback value for __file__ for consistency
Thu, 14 Nov 2019 13:38:17 -0500 Augie Fackler scmutil: convert status data object from a tuple to an attrs (API)
Thu, 14 Nov 2019 15:29:27 -0500 Augie Fackler perf: bool() elements of dirstate.status return instead of len()
Thu, 14 Nov 2019 15:28:44 -0500 Augie Fackler tags: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:28:34 -0500 Augie Fackler subrepo: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:28:08 -0500 Augie Fackler revset: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:27:58 -0500 Augie Fackler patch: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:27:50 -0500 Augie Fackler logcmdutil: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:27:40 -0500 Augie Fackler context: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:27:32 -0500 Augie Fackler commands: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:27:20 -0500 Augie Fackler cmdutil: convert terse status result back to an scmutil.status
Thu, 14 Nov 2019 15:26:17 -0500 Augie Fackler cmdutil: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:26:05 -0500 Augie Fackler uncommit: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:25:57 -0500 Augie Fackler transplant: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:25:48 -0500 Augie Fackler split: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:25:40 -0500 Augie Fackler mq: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:25:26 -0500 Augie Fackler hgk: use field names instead of field numbers on scmutil.status
Thu, 14 Nov 2019 15:24:22 -0500 Augie Fackler extdiff: use field names instead of field numbers on scmutil.status
Wed, 13 Nov 2019 20:32:24 -0500 Augie Fackler encoding: fix bad type annotation
Thu, 14 Nov 2019 13:13:36 -0500 Augie Fackler branchmap: annotate constructor type for branchcache
Wed, 13 Nov 2019 22:30:33 -0500 Augie Fackler debugcommands: don't shadow the error module
Thu, 14 Nov 2019 13:14:02 -0500 Augie Fackler branchmap: correctly set()-ify list argument
Thu, 14 Nov 2019 08:03:26 -0800 Martin von Zweigbergk utils: move finddirs() to pathutil
Wed, 13 Nov 2019 21:52:25 -0500 Matt Harbison help: create packages for the help text
Thu, 14 Nov 2019 11:33:05 +0100 Denis Laxalde tests: test "hg log" with --line-range and --copies
Thu, 14 Nov 2019 11:11:38 +0100 Denis Laxalde logcmdutil: let getlinerangerevs() return "revs" as a smartset
Wed, 13 Nov 2019 17:06:05 +0100 Denis Laxalde patchbomb: fix wrong argument type when calling mail generator.flatten()
Wed, 13 Nov 2019 16:46:28 +0100 Denis Laxalde mail: move strtolocal call in _addressencode()
Wed, 13 Nov 2019 15:23:04 +0100 Denis Laxalde mail: use a native string for "subtype" value
Tue, 12 Nov 2019 22:52:30 +0100 Denis Laxalde mail: let all charset values be native strings
Wed, 13 Nov 2019 22:20:44 +0100 Denis Laxalde mail: add type hints for pytype
Tue, 12 Nov 2019 17:12:16 +0100 Denis Laxalde mail: fix a bad return type in _encode()
Mon, 11 Nov 2019 18:55:42 -0800 Gregory Szorc packaging: stage files and dynamically generate WiX installer
Mon, 11 Nov 2019 19:04:49 -0800 Gregory Szorc tests: add optional output when wheel is missing
Wed, 28 Aug 2019 17:43:56 -0700 Martin von Zweigbergk py3: replace "%r" by"'%s'% for py3-compatible (and clearer) quoting in chg
Tue, 22 Oct 2019 23:21:26 -0700 Martin von Zweigbergk dirstate: respect request to not list unknown/ignored/clean files (API)
Wed, 13 Nov 2019 09:09:42 +0100 Denis Laxalde py3: pass a bytes value for "msg" to nouideprecwarn()
Tue, 12 Nov 2019 15:53:58 -0800 Daniel Ploch remotefilelog: handle **kwargs correctly when overriding changelog.add()
Mon, 11 Nov 2019 18:51:55 -0800 Gregory Szorc packaging: ship all help .txt files on WiX
Wed, 23 Oct 2019 12:31:15 -0700 Gregory Szorc packaging: install contrib/mq.el on WiX
Mon, 11 Nov 2019 16:45:22 -0500 Augie Fackler fuzz: clean out most of fuzzutil
Mon, 11 Nov 2019 16:37:18 -0500 Augie Fackler fuzz: migrate xdiff fuzzer to use FuzzedDataProvider
Mon, 11 Nov 2019 14:48:30 -0500 Augie Fackler fuzz: migrate bdiff fuzzer to use FuzzedDataProvider
Mon, 11 Nov 2019 16:14:35 -0500 Augie Fackler dirstate: re-blacken file
Wed, 06 Nov 2019 16:24:24 +0100 Raphaël Gomès rust-matchers: remove default implementations for `Matcher` trait
Wed, 23 Oct 2019 13:55:12 -0700 Gregory Szorc packaging: use lower case for RC files
Wed, 23 Oct 2019 18:42:19 -0700 Gregory Szorc packaging: write out editor.rc in Python
Wed, 23 Oct 2019 13:25:01 -0700 Gregory Szorc packaging: stop installing Contributors.txt
Wed, 23 Oct 2019 13:21:35 -0700 Gregory Szorc packaging: remove hg-ssh.8.html from Inno installer
Wed, 23 Oct 2019 13:00:14 -0700 Gregory Szorc packaging: install .rc files to hgrc.d
Thu, 07 Nov 2019 11:13:31 +0100 Raphaël Gomès rust: introduce SIZE_FROM_OTHER_PARENT constant
Thu, 07 Nov 2019 10:32:26 +0100 Raphaël Gomès rust-status: refactor dispatch case for normal files
Thu, 07 Nov 2019 10:23:42 +0100 Raphaël Gomès rust-status: return a ParallelIterator instead of a Vec from stat_dmap_entries
Wed, 06 Nov 2019 13:43:18 +0100 Raphaël Gomès rust-status: improve status performance
Sat, 09 Nov 2019 12:55:56 +0900 Yuya Nishihara bookmarks: accept explicit -r 'wdir()' when adding new bookmarks (issue6218)
Sat, 09 Nov 2019 12:44:00 +0900 Yuya Nishihara bookmarks: use changectx instead of remembering hex of hidden revision
Sat, 09 Nov 2019 12:32:20 +0900 Yuya Nishihara bookmarks: resolve target revision out of the bookmarks loop
Sat, 09 Nov 2019 12:09:50 +0900 Yuya Nishihara bookmarks: fix handling of multiple bookmarks with one to be deactivated
Tue, 12 Nov 2019 11:05:03 +0100 Denis Laxalde py3: avoid iterating over a literal bytes in highlight stable
Mon, 11 Nov 2019 22:10:26 +0900 Yuya Nishihara import-checker: allow 'from typing import ...'
Tue, 29 Oct 2019 23:33:34 -0700 Martin von Zweigbergk match: drop support for passing '.' for root dir to visit*() methods
Wed, 16 Oct 2019 21:31:40 -0700 Gregory Szorc tests: use time.time() for relative start and stop times
Wed, 16 Oct 2019 21:25:08 -0700 Gregory Szorc tests: rename stopped and started variables to reflect times
Wed, 30 Oct 2019 00:00:21 -0700 Martin von Zweigbergk revset: simplify checkstatus() by using any()
Wed, 06 Nov 2019 18:28:11 -0800 Kyle Lippincott rebase: check for unfinished ops even when inmemory (issue6214)
Fri, 18 Oct 2019 23:18:47 -0700 Martin von Zweigbergk status: move initialization closer together
Sat, 19 Oct 2019 00:15:41 -0700 Martin von Zweigbergk largefiles: avoid dynamically subclassing context instances
Tue, 05 Nov 2019 13:31:40 -0800 Martin von Zweigbergk relnotes: copy "next" to "5.2" and clear "next" stable
Fri, 08 Nov 2019 10:13:05 -0800 Martin von Zweigbergk py3: avoid `b'%s' % type(...)` in a ProgrammingError stable
Fri, 18 Oct 2019 22:08:20 -0700 Martin von Zweigbergk largefiles: delete unused repo.status_nolfiles()
Fri, 18 Oct 2019 21:36:19 -0700 Martin von Zweigbergk largefiles: use context manager for wlock in repo.status() override
Fri, 18 Oct 2019 17:52:19 -0700 Martin von Zweigbergk largefiles: allow "lfstatus" context manager to set value to False
Fri, 18 Oct 2019 17:46:37 -0700 Martin von Zweigbergk largefiles: move lfstatus context manager to lfutil
Fri, 08 Nov 2019 14:35:53 -0800 Martin von Zweigbergk revlog: delete references to deleted nullid sentinel value
Sun, 10 Nov 2019 18:15:54 +0100 Pierre-Yves David revlog: remove the, now unused, `revlog._nodepos` attribute
Sat, 09 Nov 2019 10:31:58 +0100 Denis Laxalde py3: fix sorting of obsolete markers in obsutil (issue6217) stable
Sun, 10 Nov 2019 18:12:50 +0100 Pierre-Yves David nodemap: use bytes for the error message
Sat, 09 Nov 2019 16:16:31 +0100 Denis Laxalde py3: use native strings when forming email headers in patchbomb
Sat, 09 Nov 2019 16:54:33 +0100 Denis Laxalde mail: convert addr to str early in addrlistencode()
Sat, 09 Nov 2019 15:16:52 +0100 Denis Laxalde mail: let addressencode() / addrlistencode() return native strings
Sat, 09 Nov 2019 12:45:14 +0100 Denis Laxalde mail: let headencode() return a native string
Sat, 09 Nov 2019 13:23:55 +0100 Pierre-Yves David revlog: deprecate direct `nodemap` access
Sat, 09 Nov 2019 13:23:55 +0100 Pierre-Yves David revlog: drop special hack in the `nodemap` property
Sat, 09 Nov 2019 13:23:55 +0100 Pierre-Yves David perf: make `perfrevlogindex` use the new `index.rev` api if available
Sat, 09 Nov 2019 13:23:54 +0100 Pierre-Yves David perf: make `perfnodemap` use the new `index.get_rev` api if available
Sat, 09 Nov 2019 13:23:54 +0100 Pierre-Yves David index: use `index.get_rev` in `remotefilelog`
Sat, 09 Nov 2019 13:23:54 +0100 Pierre-Yves David index: use `index.get_rev` in `histedit.processreplacement`
Sat, 09 Nov 2019 13:23:54 +0100 Pierre-Yves David index: use `index.get_rev` in `histedit.adjustreplacementsfrommarkers`
Sat, 09 Nov 2019 13:23:54 +0100 Pierre-Yves David index: use `index.get_rev` in `rebase._computeobsoletenotrebased`
Sat, 09 Nov 2019 13:23:53 +0100 Pierre-Yves David index: use `index.get_rev` in `rebase.successorrevs`
Sat, 09 Nov 2019 13:23:52 +0100 Pierre-Yves David index: use `index.get_rev` in `unionrepo.unionrevlog`
Sat, 09 Nov 2019 13:23:53 +0100 Pierre-Yves David index: use `index.rev` in `bundlerepo.bundlerevlog`
Sat, 09 Nov 2019 13:23:53 +0100 Pierre-Yves David index: use `index.get_rev` in `exchange._pullapplyphases`
Sat, 09 Nov 2019 13:23:53 +0100 Pierre-Yves David index: use `index.rev` in `exchange.fallbackheads`
Sat, 09 Nov 2019 13:23:53 +0100 Pierre-Yves David index: use `index.get_rev` in `revset._mapbynodefunc`
Sat, 09 Nov 2019 13:23:53 +0100 Pierre-Yves David index: use `index.get_rev` in `discovery._postprocessobsolete`
Sat, 09 Nov 2019 13:23:52 +0100 Pierre-Yves David index: use `index.get_rev` in `repoview.pinnedrevs`
Sat, 09 Nov 2019 13:23:52 +0100 Pierre-Yves David index: use `index.get_rev` in `obsolete._computephasedivergentset`
Sat, 09 Nov 2019 13:23:52 +0100 Pierre-Yves David index: use `index.get_rev` in `obsutil.getobsoleted`
Sat, 09 Nov 2019 13:23:52 +0100 Pierre-Yves David index: use `index.get_rev` in `phases.newheads`
Sat, 09 Nov 2019 13:23:51 +0100 Pierre-Yves David index: use `index.get_rev` in `localrepo.known`
Sat, 09 Nov 2019 13:23:51 +0100 Pierre-Yves David index: add a `get_rev` method (API)
Sat, 09 Nov 2019 13:23:51 +0100 Pierre-Yves David index: use `index.rev` in `revlog.rev`
Sat, 09 Nov 2019 13:23:51 +0100 Pierre-Yves David index: add a `rev` method (API)
Fri, 08 Nov 2019 13:26:55 +0100 Pierre-Yves David perf: make `perfphasesremote` use the new `index.has_node` api
Fri, 08 Nov 2019 17:08:24 +0100 Pierre-Yves David index: use `index.has_node` in `infinitypush`
Fri, 08 Nov 2019 13:26:33 +0100 Pierre-Yves David index: use `index.has_node` in `phabricator.getoldnodedrevmap`
Fri, 08 Nov 2019 15:09:09 +0100 Pierre-Yves David index: use `index.has_node` in `histedit.cleanupnode`
Fri, 08 Nov 2019 15:08:27 +0100 Pierre-Yves David index: use `index.has_node` in `histedit._finishhistedit
Fri, 08 Nov 2019 13:25:25 +0100 Pierre-Yves David index: use `index.has_node` in `exchangev2._pullchangesetdiscovery`
Fri, 08 Nov 2019 16:00:47 +0100 Pierre-Yves David index: use `index.has_node` in `exchange._pulldiscoverychangegroup`
Fri, 08 Nov 2019 13:36:02 +0100 Pierre-Yves David index: use `index.has_node` in `bookmarks.bmstore`
Fri, 08 Nov 2019 11:44:23 +0100 Pierre-Yves David index: use `index.has_node` in `tags.findglobaltags`
Fri, 08 Nov 2019 13:24:54 +0100 Pierre-Yves David index: use `index.has_node` in `bundlerepo.bundlerevlog`
Fri, 08 Nov 2019 14:20:48 +0100 Pierre-Yves David index: use `index.has_node` in `obsutil.foreground`
Fri, 08 Nov 2019 14:19:53 +0100 Pierre-Yves David index: use `index.has_node` in `obsutil.exclusivemarkers`
Fri, 08 Nov 2019 14:17:03 +0100 Pierre-Yves David index: use `index.has_node` in `phases.filterunknown`
Fri, 08 Nov 2019 14:16:24 +0100 Pierre-Yves David index: use `index.has_node` in `analyzeremotephases`
Fri, 08 Nov 2019 14:00:22 +0100 Pierre-Yves David index: use `index.has_node` in `repo._rollback`
Sun, 03 Nov 2019 00:49:55 +0100 Pierre-Yves David index: use `index.has_node` in `revlog.addgroup`
Sun, 03 Nov 2019 00:05:20 +0100 Pierre-Yves David index: use `index.has_node` in `revlog.addrevision`
Sun, 03 Nov 2019 00:01:09 +0100 Pierre-Yves David index: add a `has_node` method (API)
Sat, 09 Nov 2019 05:54:22 +0100 Pierre-Yves David revlog: deal with nodemap deletion within the index
Fri, 08 Nov 2019 10:01:10 +0100 Pierre-Yves David revlog: clean up the node of all revision stripped in the C code
Sun, 03 Nov 2019 00:15:12 +0100 Pierre-Yves David revlog: move nodemap update within the index code
Sat, 02 Nov 2019 15:46:47 +0100 Pierre-Yves David revlog: deprecate the _nodecache attribute (API)
Sat, 02 Nov 2019 15:25:31 +0100 Pierre-Yves David revlog: access the nodemap through the index
Sat, 02 Nov 2019 15:21:28 +0100 Pierre-Yves David revlog: return the nodemap as the nodecache
Sat, 02 Nov 2019 14:45:57 +0100 Pierre-Yves David revlog: clarify which version use the older API in perf
Wed, 06 Nov 2019 14:13:19 +0100 Pierre-Yves David revlog: no longer return the nodemap after parsing
Wed, 06 Nov 2019 14:13:19 +0100 Pierre-Yves David revlog: move the nodemap into the index object (for pure)
Wed, 06 Nov 2019 14:13:19 +0100 Pierre-Yves David revlog: introduce an explicit NodeMap class for pure code
Wed, 06 Nov 2019 14:13:19 +0100 Pierre-Yves David utils: move the `dirs` definition in pathutil (API)
Wed, 23 Oct 2019 12:15:42 -0700 Gregory Szorc packaging: stop installing i18n files
Wed, 23 Oct 2019 11:54:22 -0700 Gregory Szorc packaging: install hgk as hgk.tcl
Wed, 23 Oct 2019 12:01:31 -0700 Gregory Szorc packaging: add logo-droplets.svg
Wed, 23 Oct 2019 11:40:59 -0700 Gregory Szorc packaging: install documentation to doc/ directory
Tue, 22 Oct 2019 18:34:03 -0700 Gregory Szorc packaging: always pass VERSION into Inno invocation
Thu, 24 Oct 2019 21:22:08 -0700 Gregory Szorc packaging: remove hg.exe.local file
Wed, 23 Oct 2019 18:39:28 -0700 Gregory Szorc packaging: stage installed files for Inno
Wed, 23 Oct 2019 18:39:17 -0700 Gregory Szorc packaging: process Inno Setup files with Jinja2
Wed, 23 Oct 2019 18:39:08 -0700 Gregory Szorc packaging: install and run Inno files in a build directory
Wed, 23 Oct 2019 18:37:36 -0700 Gregory Szorc packaging: consolidate CLI functionality into packaging.py
Wed, 23 Oct 2019 18:30:22 -0700 Gregory Szorc packaging: clean up excess packages for Inno
Fri, 08 Nov 2019 14:21:52 -0800 Kyle Lippincott unshelve: correct help string; unshelve does not accept file list
Fri, 08 Nov 2019 11:23:22 -0800 Martin von Zweigbergk repoview: use class literal for creating filteredchangelog
Thu, 07 Nov 2019 14:59:11 -0500 Augie Fackler vagrant: update vagrant image to buster from jessie
Thu, 07 Nov 2019 14:56:30 -0500 Augie Fackler packaging: remove references to debian jessie
Thu, 07 Nov 2019 14:39:02 -0500 Augie Fackler sqlitestore: remove superfluous r-prefixes on strings
Fri, 08 Nov 2019 11:19:20 -0800 Augie Fackler cleanup: remove pointless r-prefixes on single-quoted strings
Sun, 10 Nov 2019 07:30:14 -0800 Raphaël Gomès rust-threads: force Rayon to respect the worker count in config
Fri, 18 Oct 2019 07:20:26 +0100 Ian Moody phabricator: use context manager form of progress in uploadchunks
Thu, 07 Nov 2019 13:18:19 -0500 Augie Fackler cleanup: remove pointless r-prefixes on double-quoted strings
Thu, 07 Nov 2019 03:59:22 -0800 Martin von Zweigbergk formatting: remove another data-ogre from the config example
Thu, 07 Nov 2019 03:46:48 -0800 Martin von Zweigbergk fix: replace str() by b'%d' for formatting integer
Thu, 08 Jan 2009 02:03:00 +0000 Vernon Tang zeroconf: improve the extension's documentation
Wed, 06 Nov 2019 16:30:14 -0500 Augie Fackler branchmap: pytype is confused about bytestr
Wed, 06 Nov 2019 15:34:40 -0500 Augie Fackler mail: suppress a pytype error that's just experimentally wrong
Wed, 06 Nov 2019 15:12:13 -0500 Augie Fackler dagparser: suppress some pytype errors around pycompat.bytestring
Wed, 06 Nov 2019 14:48:34 -0500 Augie Fackler encoding: add comment-based type hints for pytype