diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -29,6 +29,8 @@ from . import ( util, ) +urlreq = util.urlreq + samplehgrcs = { 'user': """# example user config (see "hg help config" for more info) @@ -124,6 +126,8 @@ class ui(object): self.callhooks = src.callhooks self.insecureconnections = src.insecureconnections self.fixconfig() + + self.httppasswordmgrdb = src.httppasswordmgrdb else: self.fout = sys.stdout self.ferr = sys.stderr @@ -135,6 +139,8 @@ class ui(object): for f in scmutil.rcpath(): self.readconfig(f, trust=True) + self.httppasswordmgrdb = urlreq.httppasswordmgrwithdefaultrealm() + def copy(self): return self.__class__(self) @@ -142,6 +148,7 @@ class ui(object): """Clear internal state that shouldn't persist across commands""" if self._progbar: self._progbar.resetstate() # reset last-print time of progress bar + self.httppasswordmgrdb = urlreq.httppasswordmgrwithdefaultrealm() def formatter(self, topic, opts): return formatter.formatter(self, topic, opts) diff --git a/mercurial/url.py b/mercurial/url.py --- a/mercurial/url.py +++ b/mercurial/url.py @@ -365,7 +365,7 @@ if has_https: urlreq.httpshandler.__init__(self) self.ui = ui self.pwmgr = passwordmgr(self.ui, - urlreq.httppasswordmgrwithdefaultrealm()) + self.ui.httppasswordmgrdb) def _start_transaction(self, h, req): _generic_start_transaction(self, h, req) @@ -482,7 +482,7 @@ def opener(ui, authinfo=None): handlers = [ httpconnectionmod.http2handler( ui, - passwordmgr(ui, urlreq.httppasswordmgrwithdefaultrealm())) + passwordmgr(ui, ui.httppasswordmgrdb)) ] else: handlers = [httphandler()] @@ -491,7 +491,7 @@ def opener(ui, authinfo=None): handlers.append(proxyhandler(ui)) - passmgr = passwordmgr(ui, urlreq.httppasswordmgrwithdefaultrealm()) + passmgr = passwordmgr(ui, ui.httppasswordmgrdb) if authinfo is not None: passmgr.add_password(*authinfo) user, passwd = authinfo[2:4]