diff -r dbaf9aabfb69 -r c41ed5d4f770 mercurial/ui.py --- a/mercurial/ui.py Wed Dec 11 15:33:07 2019 -0800 +++ b/mercurial/ui.py Wed Dec 11 15:06:09 2019 -0800 @@ -434,16 +434,16 @@ return raise - cfg = config.config() - trusted = sections or trust or self._trusted(fp, filename) + with fp: + cfg = config.config() + trusted = sections or trust or self._trusted(fp, filename) - try: - cfg.read(filename, fp, sections=sections, remap=remap) - fp.close() - except error.ParseError as inst: - if trusted: - raise - self.warn(_(b"ignored: %s\n") % stringutil.forcebytestr(inst)) + try: + cfg.read(filename, fp, sections=sections, remap=remap) + except error.ParseError as inst: + if trusted: + raise + self.warn(_(b'ignored: %s\n') % stringutil.forcebytestr(inst)) if self.plain(): for k in (