git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 01/16] doc: pull: explain what is a fast-forward

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Dec 8, 2020, 14:37 UTC
Message-ID
<CAMP44s2JMNML2a8ckdrorgMH6x+NduvWsvRn-p6O=XbYBofNgg@mail.gmail.com>
In-Reply-To
<CABPp-BESMs1tuVoLFMy-BahSChFz7oANqTaeJShFa_zDbEnvBA@mail.gmail.com>
On Mon, Dec 7, 2020 at 7:23 PM Elijah Newren <newren@gmail.com> wrote:
> 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.  :-)
In theory it could be both. I just don't see how.
> 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.
Great!
> However, I am somewhat less convinced that "fast-forward" doesn't also
> serve as a noun or a verb.

I'm not saying it doesn't serve as a noun or a verb. It is certainly used in that way *in addition* to being an adverb. I'm just saying in my opinion it's primarily an adverb.

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

Not quite. I agree it is used both as a noun and a verb. And I wouldn't attempt to mandate how words should be used (I'm against prescriptiveness).

I'm just arguing from the point of view of the mental model. There is no such thing as a fast-forward object.

Take for example the word "calibration". It is a noun, but you can't point to any calibration thing. It comes from the verb calibrating, and such conversions are called nominalizations.

I'm currently re-reading The Sense of Style, and it's interesting that in Chapter 2 Steven Pinker mentions precisely these nouns, which he calls "zombie nouns". They certainly do exist, and people use them, but they suck the lifeblood out of prose. Take for example "comprehension checks were used as exclusion criteria" (zombie nouns), compared to "we excluded people who failed to understand the instructions" (live verbs).

This article from writing expert Helen Sword does a great job of explaining them:

https://opinionator.blogs.nytimes.com/2012/07/23/zombie-nouns/

Yes, "a merge done in a fast-forward way", is a "fast-forward merge", which can be nouned as "a fast-forward". It's just not very alive.

Show 7 quoted lines
> 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.

Yes, it is common also. I'm just saying unless there's a "git fast-forward" command you can't really tell git "do a fast-forward", what you tell git is: "do a merge in a fast-forward way". It's a valid way of thinking, just not the way I think.

BTW, I find it interesting that there are many instances of "fast-forward update" in the documentation, and back then I did create a "git update" tool (essentially a copy of "git pull"), so this suggests there's a void that such a tool certainly would fill.

With such a tool we would have "fast-forward merge", "fast-forward pull", and "fast-forward update", which indicates that adverb is the most natural notion.

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

No worries. I didn't take it as such. Same from my side; I'm just stating my opinion.

Cheers.
[1] https://github.com/felipec/git/commit/d38f1641fc33535aa3c92cf6d3a30334324d3488
-- 
Felipe Contreras
Previous: Elijah NewrenNext: Felipe Contreras
Message 10 of 33 in “pull: default warning improvements”
  1. 00/16 pull: default warning improvementsFelipe Contreras, Dec 5, 2020
  2. 01/16 doc: pull: explain what is a fast-forwardFelipe Contreras, Dec 5, 2020
  3. Junio C HamanoDec 7, 2020
  4. Felipe ContrerasDec 7, 2020
  5. Elijah NewrenDec 7, 2020
  6. Junio C HamanoDec 7, 2020
  7. Felipe ContrerasDec 8, 2020
  8. Felipe ContrerasDec 8, 2020
  9. Elijah NewrenDec 8, 2020
  10. Felipe ContrerasDec 8, 2020
  11. Felipe ContrerasDec 8, 2020
  12. 03/16 pull: refactor fast-forward checkFelipe Contreras, Dec 5, 2020
  13. 05/16 pull: trivial cleanupFelipe Contreras, Dec 5, 2020
  14. 04/16 pull: cleanup autostash checkFelipe Contreras, Dec 5, 2020
  15. 02/16 pull: improve default warningFelipe Contreras, Dec 5, 2020
  16. Junio C HamanoDec 7, 2020
  17. Felipe ContrerasDec 7, 2020
  18. 16/16 pull: trivial memory fixFelipe Contreras, Dec 5, 2020
  19. 14/16 test: merge-pull-config: trivial cleanupFelipe Contreras, Dec 5, 2020
  20. 06/16 pull: move default warningFelipe Contreras, Dec 5, 2020
  21. 08/16 pull: trivial whitespace style fixFelipe Contreras, Dec 5, 2020
  22. 07/16 pull: display default warning only when non-ffFelipe Contreras, Dec 5, 2020
  23. 09/16 pull: introduce --merge optionFelipe Contreras, Dec 5, 2020
  24. 13/16 pull: add proper error with --ff-onlyFelipe Contreras, Dec 5, 2020
  25. Felipe ContrerasDec 5, 2020
  26. 1/2 pull: add proper error with --ff-onlyFelipe Contreras, Dec 5, 2020
  27. 2/2 tentative: pull: change the semantics of --ff-onlyFelipe Contreras, Dec 5, 2020
  28. 12/16 pull: move configurations fetchesFelipe Contreras, Dec 5, 2020
  29. 15/16 test: pull-options: revert unnecessary changesFelipe Contreras, Dec 5, 2020
  30. 10/16 pull: show warning with --ffFelipe Contreras, Dec 5, 2020
  31. 11/16 rebase: add REBASE_DEFAULTFelipe Contreras, Dec 5, 2020
  32. Junio C HamanoDec 7, 2020
  33. Felipe ContrerasDec 7, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.