git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Elijah Newren <newren@gmail.com>, Alex Henrie <alexhenrie24@gmail.com>
Cc: "Felipe Contreras" <felipe.contreras@gmail.com>,
	"Git mailing list" <git@vger.kernel.org>,
	"Vít Ondruch" <vondruch@redhat.com>,
	"Jacob Keller" <jacob.keller@gmail.com>,
	"Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>
Subject: Re: [PATCH 2/2] pull: improve default warning
Date: Tue, 22 Jun 2021 20:09:28 -0500	[thread overview]
Message-ID: <60d289c84fadf_312208dc@natae.notmuch> (raw)
In-Reply-To: <CABPp-BF1noWhiJadHzjJmnGo8hdZj6Fk7XnZ=u6BVVSGfHE7og@mail.gmail.com>

Elijah Newren wrote:
> On Mon, Jun 21, 2021 at 8:15 PM Alex Henrie <alexhenrie24@gmail.com> wrote:
> >
> > My only serious objection to this patch is the instruction to merge if
> > you don't know what to do instead of asking the repository maintainer
> > what to do or reading the Git documentation. I don't have a strong
> > opinion on the rest of the patch.
> 
> You're not alone, Alex; I objected to that part as well.  (See e.g.
> https://lore.kernel.org/git/CABPp-BF4rXBOKsn8bG6y3QUEtNVV9K2Pk5NmwrU5818CqhRt_Q@mail.gmail.com/
> and various other emails in that thread, ending with "agree to
> disagree" later).  I still object to it as I did then.

You made your disagreement known in [1], I responded to it with a
devastating argument in [2], and you immediately withtdrew from the
discussion in [3] without engaging my argument at all.

In total you engaged with my arguments zero times.

This is all you replied:

  Yes, we can agree to disagree on this particular point.

To make the record straight, I'm restating the argument you avoided in full:

  But that is not the warning, this is the warning:

    Pulling without specifying how to reconcile divergent branches is discouraged;
    you need to specify if you want a merge, a rebase, or a fast-forward.
    You can squelch this message by running one of the following commands:

      git config pull.rebase false  # merge (the default strategy)
      git config pull.rebase true   # rebase
      git config pull.ff only       # fast-forward only

    You can replace "git config" with "git config --global" to set a default
    preference for all repositories.
    If unsure, run "git pull --merge".
    Read "git pull --help" for more information.

  This warning says:

  1. There's 3 options: merge, rebase, fast-forward
  2. merge is the default strategy
  3. If unsure, specify --merge (the default strategy)

  So taken altogether it does say what is the default strategy.

  > More
  > importantly, it makes a recommendation...and one that undercuts the
  > point of the message.

  So?

  When boarding a plane the flight attendants do a safety demonstration
  that passengers should pay attention to. If one passenger is not
  paying attention (listening to music on headphones, and reading a
  book) what should the crew do?

  1. Remove the passenger's headphones and force him to pay attention to
  the safety demonstration
  2. Let the passenger ignore the safety demonstration

  Human beings are independent agents responsible for their own actions.
  You as a separate human being--a crew member--can argue that it's not
  in the best interest of the passenger to ignore the safety
  demonstration, and you may be right, but the passenger decisions are
  still the passenger's decisions, even if they are bad.

  Do you think the crew should disregard the passenger's volition and
  force him to pay attention to the safety demonstration?

  > It makes it feel like the message shouldn't
  > exist at all in any circumstances.  I even suspect that adding that
  > sentence may undercut any efforts towards changing the default to
  > ff-only-as-default.  While I'm a big fan of most of what you've done
  > in this series, I will object to its merging for as long as this
  > stays.  (I definitely don't have veto power or anything close to it,
  > just stating what my opinion is.)

  The current warning should not exist at all.

  The complaint from Vít Ondruch [1] that reignited this series is a
  valid one. A *permanent* warning is not good. We should have a
  *temporary* warning with the express purpose of notifying users of an
  upcoming change.

  If we have not yet decided on what should be the default (Junio seems
  to have casted some doubt on the consensus [2]), and we don't have a
  clear path forward to implement such change (we can't even tell users
  to use "pull.ff=only", since eventually it may be
  "pull.mode=ff-only"), then we must remove the warning.

  It was a mistake to put a *permanent* warning before deciding to
  change the default.

  So, there's two options:

  1. We decide on a path forward and fix the warning so it *temporarily*
  explains what will happen in the future
  2. We remove the *permanent* warning

  Since we are already here, we might as well take advantage of that
  warning and repurpose it. But in the meantime--while the git project
  decides what to do, and what configurations to suggest the users to
  change--we should at the very least waste as little as the user's time
  as possible, and give him/her a quick opt-out.

  Yes, a quick opt-out defeats the purpose of a warning, but we must
  respect the users' volition. The user may be on a deadline trying to
  push some changes to production before the weekend, and after a system
  update be annoyed with this warning on every pull. The user may not
  have time to look at the warning, decide he wants to read the warning
  in the future, maybe next Monday, and thus not configure anything to
  silence it.

  What's wrong with a user saying "I don't have time for this now,
  please tell me what to do for now, I'll look at the warning later"? If
  anything for those users the configuration is the wrong thing to do,
  because being in a hurry they just choose the first configuration and
  forget about the warning without actually looking at it (because they
  didn't have time), and it will not appear any more. By typing "git
  pull --merge" the user can get rid of the warning *for now*, but the
  next time he does "git pull" the warning will reappear, and at that
  time perhaps the user does have the time to read it, and look at the
  manpage.

  Nobody likes their workflow to be interrupted and be forced to do anything.

  I don't think my patches plus that suggestion for a quick opt-out are
  in any way worse than the current situation. If you think they are,
  then we'll just have to agree to disagree.

  I quote the voice of Vít Ondruch, which I think represents the typical
  user: "please select any strategy considered more appropriate and stop
  warning me".

  Cheers.

  [1] https://lore.kernel.org/git/742df4c2-2bc5-8a4b-8de1-cd5e48718398@redhat.com/
  [2] https://lore.kernel.org/git/xmqqh7p1fjml.fsf@gitster.c.googlers.com/

> I'm curious whether it'll just be resubmitted again multiple times,
> eventually with a cover letter that repeats something along the lines
> of "these are the non-controversial changes from last-year series
> which...don't have any reason not to be merged."

The fact that **one** person was not 100% on board with a change doesn't
make it controversial.

You made the conscious choice to withdraw from the discussion
immediately, so just like a person who abandons an election cycle and
decides not to vote, you are leving the future of the matter in the
hands of others.

If you want to rejoin the discussion, feel free to respond to my
argument that you dodged last round [3].

Cheers.

[1] https://lore.kernel.org/git/CABPp-BF4rXBOKsn8bG6y3QUEtNVV9K2Pk5NmwBF4rXBOKsn8bG6y3QUEtNVV9K2Pk5NmwrU5818CqhRt_QrU5818CqhRt_Q@mail.gmail.com/
[2] https://lore.kernel.org/git/CAMP44s2L24jhCG9ps72--ZiJkXUovR726jCf8JTLHAs0jV7Whg@mail.gmail.com/
[3] https://lore.kernel.org/git/CABPp-BGdNt8TBMTE9zvaicF5AtvyTBhpiJXqkuZc7mBLGbw0Qw@mail.gmail.com/

-- 
Felipe Contreras

  parent reply	other threads:[~2021-06-23  1:09 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-21 17:52 [PATCH 0/2] pull: documentation improvements Felipe Contreras
2021-06-21 17:52 ` [PATCH 1/2] doc: pull: explain what is a fast-forward Felipe Contreras
2021-06-22  5:51   ` Bagas Sanjaya
2021-06-23  1:11     ` Felipe Contreras
2021-06-24 14:21   ` Philip Oakley
2021-06-24 14:31     ` Felipe Contreras
2021-06-24 16:59       ` Philip Oakley
2021-06-24 19:05         ` Felipe Contreras
2021-06-24 22:07           ` Philip Oakley
2021-06-24 23:41             ` Felipe Contreras
2021-06-25  9:12               ` Ævar Arnfjörð Bjarmason
2021-06-25 10:47                 ` Felipe Contreras
2021-06-25 10:59                   ` Ævar Arnfjörð Bjarmason
2021-06-25 15:49                     ` Felipe Contreras
2021-06-25 16:53                     ` Kerry, Richard
2021-06-25 17:34                       ` Felipe Contreras
2021-06-25 21:36                         ` Felipe Contreras
2021-06-21 17:52 ` [PATCH 2/2] pull: improve default warning Felipe Contreras
2021-06-21 18:05   ` Alex Henrie
2021-06-21 18:51     ` Felipe Contreras
2021-06-21 21:47       ` Alex Henrie
2021-06-21 22:12         ` Felipe Contreras
2021-06-22  3:15           ` Alex Henrie
2021-06-22  4:26             ` Felipe Contreras
2021-06-22 15:06             ` Elijah Newren
2021-06-22 21:22               ` Alex Henrie
2021-06-23  2:20                 ` Elijah Newren
2021-06-23  4:18                   ` Felipe Contreras
2021-06-23  6:47                     ` Elijah Newren
2021-06-23 17:24                       ` Felipe Contreras
2021-06-23  1:09               ` Felipe Contreras [this message]
2021-06-23  7:54                 ` Elijah Newren
2021-06-23 18:19                   ` Felipe Contreras
2021-06-24  3:38                     ` Alex Henrie
2021-06-24  5:55                       ` Felipe Contreras
2021-06-27  0:17                         ` Alex Henrie
2021-06-27  4:21                           ` Felipe Contreras
2021-06-23  0:48 ` [PATCH v2 0/2] pull: documentation improvements Felipe Contreras
2021-06-23  0:48   ` [PATCH v2 1/2] doc: pull: explain what is a fast-forward Felipe Contreras
2021-06-23  0:48   ` [PATCH v2 2/2] pull: improve default warning Felipe Contreras

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=60d289c84fadf_312208dc@natae.notmuch \
    --to=felipe.contreras@gmail.com \
    --cc=alexhenrie24@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jacob.keller@gmail.com \
    --cc=newren@gmail.com \
    --cc=peff@peff.net \
    --cc=vondruch@redhat.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.
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).