This isn't really an internal exception.  Its easy for a user to cause, just modify (and don't commit) a file that the branch you are fast-forwarding to has also modified.  This happens so often that users want to know the complete list of offending files, so they can figure out what to do next.

This is an exception (or MergeResult?) that we need to export as part of the public API so that applications can alert the user that their working directory contains uncommitted changes which conflict with the merge they are trying to do.