On Thu, Apr 11, 2013 at 01:23:57AM +0530, Ramkumar Ramachandra wrote: > Ramkumar Ramachandra wrote: > > git push -- master next; pushes to my current branch's > > branch.<name>.pushremote? Isn't that a disaster? > > Actually, branch.<name>.pushremote already breaks the current design > in a way, as Junio pointed out in a different email: a push.default > set to anything except "current" is already nonsensical. Why should > "matching" branches be pushed to the remote that my current branch > specifies? That might well have their own branch.<name>.pushremote > configured, which should be respected. I'm not sure that it should be respected. "master" is short for "refs/heads/master:refs/heads/master", and does not mean "push master to where I have it configured to go" at all. That may be what the user means, but changing how "git push" works is going to create inconsistency with other cases. > We should fix this now. I think the fault lies in the rather old > design of push.default. Do you have any suggestions as what would > make sense here? Ultimately, I think a git push; needs to pick > remotes for each refspec separately. The orthogonal design is > definitely not right in my opinion. Right, the example above might include multiple remotes if pushremote is respected. Or it might not come up with an answer at all for a tag. If you do: git push -- v1.2.3 master where does v1.2.3 go? To remote.pushdefault? That seems simple and consistent, as there is no ref-specific pushremote defined. But I'd guess that the user probably _wanted_ it to go to branch.master.pushremote. > As the author of branch.<name>.pushremote, I apologize for not having > caught this earlier. I've been using push.default = current for a > long time, and don't often think about the other settings. I don't think pushremote introduced the problem. It is much older than that, and dates back to respecting branch.*.remote at all for pushes, even though push.default=matching (and before we had push.default, it was always matching) does not have anything to do with the current branch. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html