On Fri, Nov 02, 2018 at 06:32:36PM +0100, Nicolas Mailhot wrote: > > I did create the way git credential matches repo urls. And I do not > > think your proposal is a good idea. The credential system is about > > interacting with a remote URL, and creating a commit object is a local > > operation. That mismatch leaks through when you work with multiple > > remotes, since it is not clear which URL we would match against when > > the operation does not involve a remote at all. > > I don't think it's quite that simple. The id part of creating a commit > object is not a local operation at all. You choose the id written in a > commit for a specific remote target, it has no use locally, most of us > do not need it to reach themselves. I don't think that's true. You do not need to have a remote at all to use Git. But more importantly, the commit is not in any way tied to a specific remote. You might have multiple remotes that are storing many of the same objects. So even if you wanted to somehow assign a segment of history to a remote, it is not an unambiguous mapping. > So yes there is a leak but it’s built in the git commit logic itself. > Ideally, git would defer resolving <me> in commits to when I push to a > remote target. I'm sure you’re aware of all the workarounds git users do > at push time, when they realize the commit <me> is not the good one. Your second sentence is fundamentally at odds with how Git works and its decentralized data model. > And since the leak is built in the commit logic itself, there are no > perfect solutions that do not involve revisiting how commit works. > > So, unless someone wants to revisit git commit, we’re left with > imperfect solutions, and git credentials is no worse than another. It > certainly fixes my use case fine. You did good work in git credentials. Sorry, I just don't agree with any of the logic here. That's not how commits work in Git, and all of the solutions are not equally imperfect. -Peff