git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Elijah Newren <newren@gmail.com>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, Git <git@vger.kernel.org>,
	Alex Henrie <alexhenrie24@gmail.com>, Jeff King <peff@peff.net>,
	Philip Oakley <philipoakley@iee.email>
Subject: Re: [PATCH v3 01/16] doc: pull: explain what is a fast-forward
Date: Mon, 7 Dec 2020 17:23:00 -0800	[thread overview]
Message-ID: <CABPp-BESMs1tuVoLFMy-BahSChFz7oANqTaeJShFa_zDbEnvBA@mail.gmail.com> (raw)
In-Reply-To: <CAMP44s0g7JLTZZs=O3gUcEiPt--p3gXEPHL0GsBqoqweKA=9Rw@mail.gmail.com>

On Mon, Dec 7, 2020 at 4:17 PM Felipe Contreras
<felipe.contreras@gmail.com> wrote:
>
> On Mon, Dec 7, 2020 at 4:40 PM Elijah Newren <newren@gmail.com> wrote:
> > On Mon, Dec 7, 2020 at 2:22 PM Felipe Contreras
> > <felipe.contreras@gmail.com> wrote:
>
> > > The glossary defines a fast-forward as:
> > >
> > >   A fast-forward is a special type of `merge`
> > >
> > > So, if you consider "merge" a noun, then a fast-forward is an
> > > adjective. If you consider it a verb, then it's an adverb. But it's
> > > not a verb.
> >
> > A square is a special type of a rectangle, but that doesn't make
> > "square" an adjective; both square and rectangle are nouns.
>
> Words have multiple definitions. The word "square" is both a noun, and
> an adjective [1]. It's perfectly fine to say "square corner".
>
> Just like it's perfectly fine to say "fast-forward merge", or "quick sort".
>
> And that's how many people use it:
>
> https://git-scm.com/docs/git-merge#_fast_forward_merge
> https://docs.gitlab.com/ee/user/project/merge_requests/fast_forward_merge.html
> https://www.atlassian.com/git/tutorials/using-branches/git-merge#:~:text=Fast%20Forward%20Merge
>
> Plus there's many instances in the documentation:
>
> * non-fast-forward update
> * fast-forward merges
> * fast-forward check
> * "fast-forward-ness"
> * fast-forward situation
> * fast-forward push
> * non-fast-forward pushes
> * non-fast-forward reference
> * fast-forward cases
> * "fast-forward" merge

Yeah, and the number of "fast-forward merge" instances suggest I'm
losing the battle on "fast-forward" not being a merge but a different
thing.  So maybe I'm losing multiple battles here.  :-)

> > > If it was a verb, then we should have `git fast-forward`, which may
> > > not be a terrible idea, but right now a fast-forward is a modifier.
> > >
> > > At least that's what I have in my mind, and the glossary seems to agree.
> >
> > If you read the release notes and even various messages printed by
> > git, "fast-forwards", "fast-forwarded", "fast-forwarding", and "to
> > fast-forward" all appear multiple times.  And yes, "fast-forward" also
> > appears multiple times as a noun in addition to the various uses as a
> > verb.  So, I'd say the glossary just isn't comprehensive because in
> > this case we have a word that serves as both a noun and a verb.
>
> It can be a noun, a verb, an adjective, and an adverb. But the
> question is not what it can be, but what it actually is. I'm just
> telling you my rationale:
>
> 1. noun: it doesn't make sense because you don't create, pick, show,
> or push a "fast-forward"
> 2. verb: there's no idiom to tell git "do fast-forward"
> 3. adjective: there are merge nouns (commits), but no instances of
> fast-forward merge commits, like say octopus merge commits
> 4. adverb: you can tell git "do merge", and "do fast-forward merge"
>
> So, in my opinion a fast-forward today can only logically be an adverb.
>
> Like a bubble sort is a special type of sort, and theoretically you
> can say "do a bubble", but it's just weird. My mind is left hanging: a
> bubble $what? Likewise, when people say "do me a solid", I'm
> annoyed... A solid $what?! They mean "a solid favor". People do it, so
> it's part of language, but it doesn't stop it from being weird in my
> opinion.
>
> An adverb typically answers the question "in what way?". Do me a
> favor... In what way? In a solid way. Do a sort... In what way? In a
> quick way. Do a move... In what way? In a bold way. Do a merge... In
> what way? In a fast-forward way.
>
> > Going back to the text Junio highlighted, I agree with him that the
> > phrase looks really awkward, and much prefer his suggestion
> > (regardless of whether it aligns with the current glossary).
>
> Normally I don't show credentials, but in this case I think it might
> be relevant. I've read multiple linguists, like Noam Chomsky, and
> Steven Pinker. I follow many others and read their articles. I also
> read The Pinker's Sense of Style: The Thinking Person's Guide to
> Writing in the 21st Century [2], which I can't recommend enough for
> people writing technical documents or any other classic style. I have
> an arguably successful blog with more than 200 articles and more than
> 1 million views, which is regularly linked from other blogs, and
> technical resources. I constantly get thanked both in person, and
> online for what I write. And at some point I was asked by a publisher
> to write a book about Git (which I didn't feel prepared for at that
> time).
>
> So, clearly at least some people value the way I write.
>
> I'm not trying to be stubborn here, I just honestly put effort into
> the art of writing, and I do care deeply about language.
>
> Of course I might be wrong in this particular instance, but if I am,
> it's not because of lack of effort.
>
> I think fast-forward is mainly an adverb, but even if it isn't the
> main usage; it's still clearly an usage.
>
> Cheers.
>
> [1] https://www.merriam-webster.com/dictionary/square
> [2] https://www.amazon.com/Sense-Style-Thinking-Persons-Writing/dp/0143127799

You have very compelling arguments that fast-forward often serves as
an adverb (and if I'd thought a little closer, I would have remembered
that I use "fast-forward update" myself).  You have me convinced.

However, I am somewhat less convinced that "fast-forward" doesn't also
serve as a noun or a verb.  Perhaps you are trying to argue how it
*should* be used rather than how it *is* used, in which case I don't
have any counter-arguments for you (I'm less well linguistically
trained).  But if you look at how it is used, the number of times "a
fast-forward update" is shortened to "a fast-forward" in the
documentation suggests to me it's often a noun, and the number of
times that variants such as "fast-forwards", "fast-forwarded",
"fast-forwarding", and "to fast-forward" appear in both the docs and
output messages means that it's also frequently used as a verb as
well.  The fact that Junio expressed surprise upthread ("I thought
that the idea that the word can be used as a verb...was given and not
something anybody needs to be explained about") also suggests that
usage of fast-forward as a verb is common.  Anyway, I think trying to
treat "fast-forward" as solely an adverb results in awkward phrases
like "in a fast-forward way" instead of just using the much simpler
verb form.

Also, re-reading my earlier email, it looks like it could easily come
across as curt.  My apologies if it did read that way.

  reply	other threads:[~2020-12-08  1:23 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-05 19:52 [PATCH v3 00/16] pull: default warning improvements Felipe Contreras
2020-12-05 19:52 ` [PATCH v3 01/16] doc: pull: explain what is a fast-forward Felipe Contreras
2020-12-07 20:45   ` Junio C Hamano
2020-12-07 22:22     ` Felipe Contreras
2020-12-07 22:40       ` Elijah Newren
2020-12-07 23:08         ` Junio C Hamano
2020-12-08  0:20           ` Felipe Contreras
2020-12-08  0:17         ` Felipe Contreras
2020-12-08  1:23           ` Elijah Newren [this message]
2020-12-08 14:37             ` Felipe Contreras
2020-12-08 18:55               ` Felipe Contreras
2020-12-05 19:52 ` [PATCH v3 02/16] pull: improve default warning Felipe Contreras
2020-12-07 20:55   ` Junio C Hamano
2020-12-07 22:29     ` Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 03/16] pull: refactor fast-forward check Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 04/16] pull: cleanup autostash check Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 05/16] pull: trivial cleanup Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 06/16] pull: move default warning Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 07/16] pull: display default warning only when non-ff Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 08/16] pull: trivial whitespace style fix Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 09/16] pull: introduce --merge option Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 10/16] pull: show warning with --ff Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 11/16] rebase: add REBASE_DEFAULT Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 12/16] pull: move configurations fetches Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 13/16] pull: add proper error with --ff-only Felipe Contreras
2020-12-05 20:15   ` Felipe Contreras
2020-12-05 20:19     ` [PATCH 1/2] " Felipe Contreras
2020-12-05 20:19       ` [PATCH 2/2] tentative: pull: change the semantics of --ff-only Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 14/16] test: merge-pull-config: trivial cleanup Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 15/16] test: pull-options: revert unnecessary changes Felipe Contreras
2020-12-05 19:53 ` [PATCH v3 16/16] pull: trivial memory fix Felipe Contreras
2020-12-07 20:55 ` [PATCH v3 00/16] pull: default warning improvements Junio C Hamano
2020-12-07 22:33   ` 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

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

  git send-email \
    --in-reply-to=CABPp-BESMs1tuVoLFMy-BahSChFz7oANqTaeJShFa_zDbEnvBA@mail.gmail.com \
    --to=newren@gmail.com \
    --cc=alexhenrie24@gmail.com \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=philipoakley@iee.email \
    /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).