Thread (5 messages) flat view 5 messages, 3 authors, 2022-07-22

Re: Question: How to find the commits in the ancestry path of seen down to _and_ including a given topic?

From: Derrick Stolee <hidden>
Date: 2022-07-22 11:07:02

On 7/21/22 3:34 PM, Elijah Newren wrote:
On Thu, Jul 21, 2022 at 8:37 AM Junio C Hamano [off-list ref] wrote:
quoted
Elijah Newren [off-list ref] writes:
quoted
A simple question that I'm spinning out of [1]: How can I get `git
log` to show the commits in the ancestry path from seen, back to *and
including* a given topic (but not commits from unrelated topics)?
Drawing of a sample history, please.

I feel stupid asking this, but I do not think I even understand what
the question is X-<.

Commits that are ancestors of 'seen' and are descendants of the tip
of the topic?
What you said *plus* commits from the topic itself.  From this graph:

    A---B---C---J---K <-- main
            |\       \
            | \       N---------------O---P---Q <-- seen
            |  \     /               /
            |   L---M  <-- topic    /
             \                     /
              D---E---F---G---H---I  <-- other_topic

I want the commits L-Q.  If I run
Here is the thing I misunderstood. "topic" is already in "seen", so
a seen...topic won't work at all.

This idea is complicated by the fact that you have a concrete idea
of which commits are in "topic", but you really can't do that without
a definition of what it's based on. $(git merge-base main topic)
would get you C, but then there are multiple paths from Q to C that
don't go through topic.

You can pull out that "first" commit in topic with this:

  git revlist -1 --reverse main..topic

but it only works if topic is a linear branch off of a single point
in the history of main.
The closest I seem to be able to get is

   git log --ancestry-path topic~${commits_in_topic_minus_one}..seen

which includes all commits I want except the first commit of the topic
branch.
If you add --boundary, you should get that last commit as you want.

Thanks,
-Stolee
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help