threads / discuss / 50751

Shorthand for "$(git merge-base A B)"

Subject: Shorthand for "$(git merge-base A B)"

## tl;dr

3 messages between Mar 15, 2019 and Mar 18, 2019.

replies: 2people: 3as markdown or json

John Passaro· Mar 15, 2019, 18:58 UTC · lore

I find myself fairly frequently doing something like "git log $(git merge-base A B)..C". As far as I can tell, there is no shorthand for the $() part of this, but it seems like something that could be pretty naturally added, or documented better if there is some esoteric combination of the existing shorthands that would support it.

Is there any way to support a shorthand for $(git merge-base A B)? I hoped a joiner in the spirit of A..B could be used:

A::B A*B A%B If not, maybe A@{mb:B} or something along those lines?

I can imagine this would be a non-trivial amount of work, just wondering if there is interest, or if anybody has thoughts on the notation?

Thanks, John

Jonathan Nieder· Mar 15, 2019, 21:23 UTC · re: John Passaro · lore

Re: Shorthand for "$(git merge-base A B)"

Hi,
John Passaro wrote:
> I find myself fairly frequently doing something like "git log $(git
> merge-base A B)..C".

Hm. Can you tell me more about the workflow / higher-level operation where you do this?

Curious, Jonathan

Junio C Hamano· Mar 18, 2019, 05:27 UTC · re: Jonathan Nieder · lore

Re: Shorthand for "$(git merge-base A B)"

Jonathan Nieder <jrnieder@gmail.com> writes:
Show 7 quoted lines
> John Passaro wrote:
>
>> I find myself fairly frequently doing something like "git log $(git
>> merge-base A B)..C".
>
> Hm.  Can you tell me more about the workflow / higher-level operation
> where you do this?

Yes indeed, that would be interesting to learn. I can think of reasons why "git log ^A ^B C" may be useful, but I do not think of a case in which "git log --not $(git merge-base A B) --not C" [*1*] would become useful.

[Footnote]
*1* As there can be more than one merge-base between A and B, the
 right way to write what John wanted to write is to do the above.
 A single "--not" says "until you see another --not, take all the
 positive one from the command line as negative and vice versa".
 You can also write it as "git log C --not $(git merge-base A B)".

← back to recent threads