Colleagues, do I correctly understand that there is no automatic and general answer to seemingly simple question "What a Git merge of a branch has brought to master"? For it to answer - we need a reliable way to find a commit where master and branch diverged for the 1st time.
Also by "automatic" I mean "operating just Git CLI + without human being interpreting a graph of commits".
I'm interested in finding a combined change brought by whole Blue branch + commmit9 (where possible conflict resolution happened + some other changes).
My study - see diagram (left/right pictures are the same commit history, just depicted differently).
We have Blue branch and Black is master branch.
In my understanding generally this task is impossible due to:
git branch is a sliding pointer to some current revision, it can also be renamed. branches have no real identity in git.
git does not keep info that Blue branch was created after 1 before 2 (maybe in local ref log only?)
git merge-base gives us just last merge #6, not #1
generally we can't get "oldest" diversion #1 because of prehistory - there might be other older diversions before, and no reliable start of branch can be found (see item 2)
we can't also automatically "reconstruct" Blue branch: there is no automatic way to understand that Blue branch was 4>5>6 and not C>D>6 path
Question: Am I missing something? How do you solve this task in your practice? By visual interpretation of commit graph?