diff -r fea71f66ebff -r fc777c855d66 mercurial/url.py --- a/mercurial/url.py Thu Jun 09 11:41:36 2016 +0200 +++ b/mercurial/url.py Thu Jun 09 12:41:57 2016 +0200 @@ -493,8 +493,10 @@ passmgr = passwordmgr(ui, ui.httppasswordmgrdb) if authinfo is not None: - passmgr.add_password(*authinfo) - user, passwd = authinfo[2:4] + realm, uris, user, passwd = authinfo + saveduser, savedpass = passmgr.find_stored_password(uris[0]) + if user != saveduser or passwd: + passmgr.add_password(realm, uris, user, passwd) ui.debug('http auth: user %s, password %s\n' % (user, passwd and '*' * len(passwd) or 'not set'))