git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Jonathan Nieder" <jrnieder@gmail.com>,
	"Ramkumar Ramachandra" <artagnon@gmail.com>,
	"Git List" <git@vger.kernel.org>,
	"Duy Nguyễn" <pclouds@gmail.com>
Subject: Re: [ITCH] Specify refspec without remote
Date: Wed, 10 Apr 2013 00:13:43 -0400	[thread overview]
Message-ID: <20130410041343.GB795@sigill.intra.peff.net> (raw)
In-Reply-To: <7vobdnnpx6.fsf@alter.siamese.dyndns.org>

On Tue, Apr 09, 2013 at 06:19:01PM -0700, Junio C Hamano wrote:

> > 	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.

I would have assumed the opposite. We feed "push" two items: where to
push (dst), and what refspecs to push (refs). We may or may not have
each item. Here's what's possible today:

  dst=present, refs=present: (case 1)
    push to $dst, using $refs
  dst=present, refs=missing: (case 2)
    push to $dst, using refspecs from remote.$dst.push or push.default
  dst=missing, refs=missing: (case 3)
    push to remote.pushDefault, branch.*.remote, or "origin"; use
    refspecs from remote.$x.push or push.default, where $x is the remote
    we decide to use.

The missing case 4 is obviously:

  dst=missing, refs=present

And I would expect it to select the remote in the same way as case 3. In
other words, the "where" and the "what" are orthogonal, and the presence
or absence of one does not affect how the other is calculated (with the
exception that _if_ we have a configured remote, whether it was
specified by the user or calculated, we may use its config if no
refspecs are specified).

Do you want to explain your thinking? I'm guessing it has to do with the
fact that choosing branch.*.remote is about trying to push to the
configured upstream (even though we traditionally do _not_ take into
account branch.*.merge when doing so).

> > 	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"?

Yeah, I would expect that each uses its own default refspec. That is,
the above command is exactly equivalent to:

  git push origin && git push korg

(possibly without the short-circuit behavior of "&&", but definitely
taking both into account in the exit code).

I'd also be fine if we punted on the multiple remotes thing for now. You
can accomplish it easily in the shell, as I showed above (and it is not
any less efficient, since we have to make two network connections
anyway). Jonathan's syntax allows for 0 to N remotes alongside 0 to N
refspecs. The interesting new case (to me, anyway) is the 0 remotes, >0
refspecs case. But we don't have to handle >1 remotes now; once we have
the syntax in place, we can make it work later when we've decided on the
semantics.

-Peff

  reply	other threads:[~2013-04-10  4:13 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-18 16:58 [ITCH] Specify refspec without remote Ramkumar Ramachandra
2013-03-18 17:08 ` Jeff King
2013-03-19  9:58   ` Ramkumar Ramachandra
2013-03-19 10:02     ` Jeff King
2013-03-19 11:33   ` Duy Nguyen
2013-03-19 11:53     ` Ramkumar Ramachandra
2013-03-19 12:15       ` Duy Nguyen
2013-03-19 13:03         ` Holger Hellmuth (IKS)
2013-03-19 11:58     ` Holger Hellmuth (IKS)
2013-03-19 15:43       ` Junio C Hamano
2013-03-19 15:43     ` Junio C Hamano
2013-04-09 11:44   ` Ramkumar Ramachandra
2013-04-09 17:31     ` Junio C Hamano
2013-04-09 17:39       ` Ramkumar Ramachandra
2013-04-09 17:58         ` Junio C Hamano
2013-04-09 18:03           ` Ramkumar Ramachandra
2013-04-09 18:08             ` Ramkumar Ramachandra
2013-04-09 19:29             ` Junio C Hamano
2013-04-09 23:13               ` Jonathan Nieder
2013-04-09 23:14                 ` Jonathan Nieder
2013-04-10  1:19                 ` Junio C Hamano
2013-04-10  4:13                   ` Jeff King [this message]
2013-04-10 16:37                     ` Junio C Hamano
2013-04-10 17:27                       ` Jeff King
2013-04-10 18:54                         ` Junio C Hamano
2013-04-10 18:59                           ` Jeff King
2013-04-10 19:31                             ` Ramkumar Ramachandra
2013-04-10 19:33                               ` Ramkumar Ramachandra
2013-04-10 19:52                               ` Jeff King
2013-04-10 20:05                                 ` Ramkumar Ramachandra
2013-04-10 20:21                                   ` Jeff King
2013-04-10 20:41                                     ` Ramkumar Ramachandra
2013-04-10 21:02                                       ` Ramkumar Ramachandra
2013-04-10 21:32                                         ` Ramkumar Ramachandra
2013-04-10 20:21                                 ` Junio C Hamano
2013-04-10 19:53                               ` Ramkumar Ramachandra
2013-04-10 20:05                                 ` Jonathan Nieder
2013-04-10 20:11                                   ` Jeff King
2013-04-10 21:23                                     ` Jonathan Nieder
2013-04-10 20:05                                 ` Jeff King
2013-04-10 20:19                                   ` Ramkumar Ramachandra
2013-04-10 20:24                                     ` Jeff King
2013-04-10 20:55                                       ` Ramkumar Ramachandra
2013-04-10 21:04                                         ` Jeff King
2013-04-10 21:11                                           ` Ramkumar Ramachandra
2013-04-10 21:18                                             ` Jonathan Nieder
2013-04-10 21:23                                               ` Ramkumar Ramachandra
2013-04-10 21:29                                                 ` Jonathan Nieder
2013-04-10 21:42                                                   ` Ramkumar Ramachandra
2013-04-10 21:56                                                     ` Jeff King
2013-04-10 22:06                                                       ` Ramkumar Ramachandra
2013-04-10 22:16                                                         ` Jeff King
2013-04-10 22:11                                                       ` Ramkumar Ramachandra
2013-04-10 22:23                                                         ` Jeff King
2013-04-10 22:31                                                           ` Ramkumar Ramachandra
2013-04-11  7:38                                                           ` Ramkumar Ramachandra
2013-04-11  7:45                                                             ` Ramkumar Ramachandra
2013-04-11 21:40                                                             ` Junio C Hamano
2013-04-13  5:07                                                               ` Ramkumar Ramachandra
2013-04-10 20:27                                 ` Junio C Hamano
2013-04-10 21:15                                   ` Ramkumar Ramachandra
2013-04-12 22:14                             ` Junio C Hamano
2013-04-10  3:50                 ` Jeff King
2013-04-10 13:22                   ` Ramkumar Ramachandra
2013-04-10 15:56                     ` Jeff King
2013-04-10 16:38                   ` Junio C Hamano
2013-04-10 17:29                     ` Jeff King
2013-04-10 13:19                 ` Ramkumar Ramachandra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130410041343.GB795@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=artagnon@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=pclouds@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).