John Keeping wrote: > I may be an atypical user, but my expectation currently is that > branch.<name>.remote is what is used when I run "git push" with no > additional arguments. > > This is probably because whenever I add additional arguments (currently) > I have to specify where I am pushing to. > > So I think breaking user expectations is a red herring here because the > current behaviour means that users cannot have any expectation of what > will happen in this case. Either you don't say anything and "git push" > DTRT for your current branch or you must specify precisely what you want > to happen (or at least the remote to use if you have push.default = > matching or remote.<name>.mirror set). > > Personally I'd vote for "git push -- master" pushing to > remote.pushdefault, but I really don't know how you handle "git push --" > with the naïve implementation of that - is it the same as "git push" or > "git push $(git config remote.pushdefault)"? We're not changing, or even discussing, what a plain git push without destination or refspecs specified should do (yes, that means git push -- too); it depends on push.default, which already exists. My proposal does not aim to change the current behavior of _any_ current invocation (that means git push, git push origin master, git push next master v1.2, and so on). It aims to make the new syntax git push master +next behave logically. I think we can all agree that the logical solution (leaving aside founded/ unfounded user expectations) is to pick destinations for each of the branches specified individually. As I explained in my last email, using remote.pushdefault is Wrong because it treats branches like tags, and invents a new precedence. Voting without a basis is useless: do you have a counter-argument for the points I raised as to why it is Wrong? -- 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