Patch Set 3:

> I hope this won't affect merging of my changes.
It won't. Merging a change means merging its latest patch-set.
Older patch-sets don't play any role.

This change looks OK for me except that I am not sure about the
motivation for the changes in the MergeCommandTest:

The theory testMergeSuccessAllStrategies was added in order to
reproduce the ClassCastException issue, and it does it.

However, several other test were converted to theories but they don't
reproduce the ClassCastException.  While this may be a valuable
contribution to execute these tests with multiple merge strategies,
it seems like this doesn't directly help for the issue you are fixing with this
change.  I would rather propose to split your change into two changes:
- one which introduces the testMergeSuccessAllStrategies and fixes the ClassCastException
- one which converts several other tests into theories in order to improve the quality of the tests in general