I want to know, if you use
git rebase --preserve-merges
what is the exact list of commits that rebase attempts to play back.
To be more concrete, say I have topic and master branches. Previously there were some merges from master into topic (so topic wouldn't get unnecessarily far from master). Since then there have been some additional commits on topic.
Suppose now I now rebase topic on master like so:
git checkout topic
git rebase --preserve-merges master
What is the exact set of commits that git will store in the rebase "temporary area" and then reapply on top of master?
Extra credit if the answer generalizes to use of --onto and other parameters.
For comparison, "git help rebase" is clear that the set of commits to reapply is given by <upstream>..HEAD (in our case master..topic)