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

Re: [PATCH] doc: revisions: improve single range explanation

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Jun 13, 2021, 04:25 UTC
Message-ID
<60c588d452750_3d86c2085c@natae.notmuch>
In-Reply-To
<CAPig+cSE2h7A52drhELfZJLDEgQ1z+nEXoXhYMUSA00Z+S=OUA@mail.gmail.com>
Eric Sunshine wrote:
Show 23 quoted lines
> On Sat, Jun 12, 2021 at 8:44 PM Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
> > The original explanation didn't seem clear enough to some people.
> >
> > Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> > ---
> > diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt
> > @@ -299,22 +299,22 @@ empty range that is both reachable and unreachable from HEAD.
> > +For example, if you have a linear history like this:
> >
> > +    ---A---B---C---D---E---F
> >
> > +Doing A..F will retrieve 5 commits, and doing B..E will retrieve 3
> > +commits, but doing A..F B..E will not retrieve two revision ranges
> > +totalling 8 commits. Instead the starting point A gets overriden by B,
> > +and the ending point of E by F, effectively becoming B..F, a single
> > +revision range.
> 
> s/overriden/overridden/
> 
> For what it's worth, as a person who is far from expert at revision
> ranges, I had to read this revised text five or six times and think
> about it quite a bit to understand what it is saying,
Can you explain why?
This is the context: commands don't generally take two ranges:
 1. Unless otherwise noted, all git commands that operate on a set of
    commits work on a single revision range.
 2. Doing A..F will retrieve 5 commits, and doing B..E will retrieve 3
    commits, but doing A..F B..E will not retrieve two revision ranges
    totalling 8 commits.

At this point what isn't clear? Isn't it clear that `A..F B..E` aren't two revision ranges?

 3. Instead the starting point A gets overridden by B, and the ending
    point of E by F, effectively becoming B..F, a single revision range.

What isn't clear about that? A gets superseded by B because it's higher in the graph. And if you do `git log D E F` it's clear that doing `git log F` will get you the same thing, isn't it?

> Also, if this explanation is aimed at newcomers, then saying only
> "doing A..F will retrieve 5 commits" without actually saying _which_
> commits those are is perhaps not so helpful.

It doesn't matter which specific commits are retrieved, the only thing that matters is that `X op Y` is not additive.

-- 
Felipe Contreras
Previous: Eric SunshineNext: Elijah Newren
Message 5 of 11 in “doc: revisions: improve single range explanation”
  1. doc: revisions: improve single range explanationFelipe Contreras, Jun 13, 2021
  2. Bagas SanjayaJun 13, 2021
  3. Felipe ContrerasJun 13, 2021
  4. Eric SunshineJun 13, 2021
  5. Felipe ContrerasJun 13, 2021
  6. Elijah NewrenJun 13, 2021
  7. Felipe ContrerasJun 13, 2021
  8. Elijah NewrenJun 14, 2021
  9. Felipe ContrerasJun 15, 2021
  10. Eric SunshineJun 13, 2021
  11. Felipe ContrerasJun 13, 2021

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.