On Mon, May 20, 2019 at 05:17:20PM +0200, Ævar Arnfjörð Bjarmason wrote: > > There are more cases beyond that, too. You might have a helper defined > > which doesn't actually store passwords, but just sometimes tries to > > provide one. My thinking was that if you're clueful enough to have > > configured helpers, you can probably deal with the fallout. But you're > > right that it may still be a regression in the sense that the user may > > still have to actually _do_ something to get their fetch to work. > > > > I guess a more robust version of this is that _after_ the successful > > clone, we could ask the credential system "hey, do you have the > > credential for $URL?". And if it can't answer, then we can take action > > (whether that action is setting up credential-store and seeding it with > > the password, or just advising the user about the situation). > > > > -Peff > > Yeah I don't mean deal with some there-but-broken helper, but this: > > /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring: > not found > > Until then the observable effect of that has been to make the > credential.helper config a noop, but now it's causing "we have a helper" > behavior. Right, I understood. The other case I mean is not one that's broken, but a helper that's designed to provide a password from a read-only store (which presumably doesn't have _this_ password, else why would they be providing it in the URL?). It is not going to help that the clone will feed the password to such a helper because it will (correctly, and by design) ignore any "store" requests. In other words, I am agreeing with you and indicating that there are even more cases where a non-empty helper config will mislead us. I'm going to try to re-work the patch to do this check-at-the-end technique, and probably try to make the UI for clearing and seeding passwords a bit more friendly, too. -Peff