Re: [RFC/PATCH] push: introduce implicit push
- From
John Keeping <john@keeping.me.uk>
- Date
- Apr 15, 2013, 09:46 UTC
- Message-ID
- <20130415094605.GD2278@serenity.lan>
- In-Reply-To
- <CALkWK0kzpgucLbe5TtwbZ0st51+9ZW2hkML4=yHV4y--USfynA@mail.gmail.com>
On Mon, Apr 15, 2013 at 02:47:35PM +0530, Ramkumar Ramachandra wrote:
Show 33 quoted lines
> 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?
As Junio says in his parallel message, there are different opinions here, my suggestions was to effectively replace "--" with the value of remote.pushdefault. I don't think your solution is not logical, but I don't think it is the unique logical solution.
The problem is that people have different opinions of what the current situation means, resulting in different expectations of what push without a remote should do. Whatever behaviour we choose /will/ be surprising to some users, even though it is completely logical. That much is clear from the differing opinions in this thread.