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

Re: [ITCH] Specify refspec without remote

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:56:45

Jonathan Nieder [off-list ref] writes:
Junio C Hamano wrote:
quoted
And I think now I agree that indeed is a sensible assumption.  I am
not sure '-' is a good token for that, but I do not offhand think of
a reason why '-' would be a _bad_ token for that, either.
Random idea: today you can do

	git push origin master; # push branch master to remote origin
	git push --multiple origin korg; # push default refspec to 2 remotes

How about:

	git push origin korg -- master; # push master to 2 remotes
For this to be any useful, origin and korg has to have the same or
at least similar ref structure, such that pushing my 'master' to
their 'master' makes sense for both sites.  I am not sure how common
it would be.  If people commonly do so, the above looks like a
reasonably useful feature.
	git push -- master next; # push two refs to default remote
... or default "push remote" if there is one, I presume?

As you are giving what to push, I am assuming that
branch.$name.remote would not come into play in this case.
	git push origin -- master; # push master to origin, more explicitly
	git push origin korg --; # push default refspec to 2 remotes, again
As you are _not_ saying what to push, I would expect
branch.$name.remote may have to come into the picture, but because
you are saying where to push, that is not the case.  What does
"default refspec" mean in this context?  What "git push origin" (no refspecs)
would push by default will be sent to "origin", and what "git push
korg" (no refspecs) would push by default will be sent to "korg"?

All of the above sounds a bit too complicated to explain to end
users, but I think they are internally consistent.
	git push host:some/path; # ambiguous argument. Please disambiguate.
	git push host:some/path --; # push default refspec over SSH
	git push -- host:some/path; # push specified refspec to default remote
OK.
	git push origin; # is a remote name and not a refname. Good.
	git push master; # is a ref name and not a remote name. Good.
Hmm, I dunno.
What do you think?
Jonathan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help