git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Abhradeep Chakraborty <chakrabortyabhradeep79@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [RFC PATCH 1/1] push: make '-u' have default arguments
Date: Fri, 03 Dec 2021 09:29:26 -0800	[thread overview]
Message-ID: <xmqqtufpsikp.fsf@gitster.g> (raw)
In-Reply-To: <20211203081446.17596-1-chakrabortyabhradeep79@gmail.com> (Abhradeep Chakraborty's message of "Fri, 3 Dec 2021 13:44:46 +0530")

Abhradeep Chakraborty <chakrabortyabhradeep79@gmail.com> writes:

>> One thing that bothers me is that unlike your assumption, not
>> everybody uses push.default set to simple or upstream.  I am not
>> convinced that the "git push -u" that defaults to do the 'current'
>> push with TRANSPORT_PUSH_SET_UPSTREAM for them is an improvement
>> for them.
>
> May be you're right. It may not be an improvement for all. But I
> think they also would be happy seeing this 'default' case of 
> 'set-upstream'.

Not at all.  

The argument for the "good" case is for "simple" or "current" users,
they want their "git push" without repo and branch arguments to
push their current branch to the branch with the same name at the
default remote repository, and if we arrange "git push -u" to do the
sameand set up "branch.$current.merge", they will find it convenient.

The same reasoning applies for other users who do *not* want their
"git push" without repo and branch arguments to push as if they are
doing the push.default=current push.  If we make "git push -u" push
the current (and only the current) branch to the branch of the same
name at the default remote repository by overwriting argv[] like the
patch under discussion does, we would be giving these users a
convenient way to do what they do not want to do.  Besides, I think
with the current code

    $ git -c push.default=matching push -u

already does the right thing by pushing the matching branches and
sets up upstream for the branches that get pushed without the patch
in question.  With the patch, because it blindly mucks with argv[]
to force pushing only the current branch to the default remote, the
established expectation by existing users is broken.

That of course is not an improvement but actively hurts them.  We
shouldn't be making it easier for our users to hurt themselves.

So, no.  The patch in its current form is totally unacceptable.

Shouldn't the rule be something like "if 'git push $args' (where
$args may be nothing, or any options other than '-u') pushes a
branch (or a set of branches) to a repository, 'git push -u $args'
(with the same $args) should set the branch.*.{remote,merge} for the
branch(es) to the same repository" for the introduction of default
to be truly an improvement?  Or is it too strict and makes the rule
not to trigger even for the intended audience?

  reply	other threads:[~2021-12-03 17:29 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-02 14:43 [RFC PATCH 0/1] making --set-upstream have default arguments Abhradeep Chakraborty
2021-12-02 14:43 ` [RFC PATCH 1/1] push: make '-u' " Abhradeep Chakraborty
2021-12-02 18:24   ` Junio C Hamano
2021-12-03  8:14     ` Abhradeep Chakraborty
2021-12-03 17:29       ` Junio C Hamano [this message]
2021-12-03 19:27         ` Abhradeep Chakraborty
2021-12-03 11:32 ` [RFC PATCH 0/1] making --set-upstream " Philip Oakley
2021-12-03 16:03   ` Abhradeep Chakraborty
2021-12-03 16:46     ` Philip Oakley
2021-12-03 17:28   ` Abhradeep Chakraborty
2021-12-07 18:22 ` [PATCH v2 " Abhradeep Chakraborty
2021-12-07 18:23   ` [PATCH v2 1/1] push: make '-u' " Abhradeep Chakraborty
2021-12-07 22:14     ` Eric Sunshine
2021-12-08  6:12       ` [PATCH v2 1/1] push: make '-u' have default argument Abhradeep Chakraborty
2021-12-09 10:15   ` [PATCH v3 0/1] making --set-upstream have default arguments Abhradeep Chakraborty
2021-12-09 10:15     ` [PATCH v3 1/1] push: make '-u' " Abhradeep Chakraborty
2022-01-01 14:37     ` [PATCH v4 0/1] making --set-upstream " Abhradeep Chakraborty
2022-01-01 14:37       ` [PATCH v4 1/1] push: make 'set-upstream' have dafault arguments Abhradeep Chakraborty
2022-01-04  3:46         ` Junio C Hamano
2022-01-04 13:28           ` Abhradeep Chakraborty
2022-01-04 20:35             ` Junio C Hamano

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=xmqqtufpsikp.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=chakrabortyabhradeep79@gmail.com \
    --cc=git@vger.kernel.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).