rebase -p --first-parent: redo merge by cherry-picking first-parent change
When rebase -p had to replay a merge commit, it repeats the merge. But
this has drawbacks:
- When the merge has conflicts, then the rebase stops to request user
interaction. Conflict resolutions are only carried along as far as they
have been picked up by the rerere machinery.
- When the merge is evil, i.e., contains changes that are in neither of
the parents, these changes are not preserved.
- The 'git merge' invocation passes the commit message of the old merge
commit, but it still obeys the merge.log option. If it is set, the log
ends up twice in the commit message.
Add option --first-parent to redo the merge by picking the changes that
the merge introduces with respect to the first parent.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>