Thread (33 messages) flat view 33 messages, 4 authors, 2016-06-15

Re: [ITCH] Specify refspec without remote

From: Ramkumar Ramachandra <hidden>
Date: 2016-06-15 22:56:46

Jeff King wrote:
On Thu, Apr 11, 2013 at 01:23:57AM +0530, Ramkumar Ramachandra wrote:
quoted
Ramkumar Ramachandra wrote:
quoted
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.
Yes, I know "master" refers to the refspec in the above, not the ref
(ie. branch).  Hence branch configuration should have nothing to do
with this.  That's just the way things currently are: doesn't mean
that it's perfect; and I'm just throwing ideas around.
quoted
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.
remote.pushdefault indeed.
But I'd
guess that the user probably _wanted_ it to go to
branch.master.pushremote.
Huh, why?  Simply because he specified master alongside it?  How can
we infer what you said in a consistent system?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help