I was thinking about I would expect this method to return... If this method is going to handle the committing of the merge, then maybe callers of this method would only be interested in what happened as a result of this method call - for instance, maybe returning an enum type with possible values  such as of `UpToDate`, `NormalMerge`, `FastForwardMerge`, and `Conflict` would be sufficient. Maybe there are other use cases as well...

At some point, I can see this method getting a `MergeOptions` parameter as well, to control behaviors such as the type of acceptable merges (Normal only, Fast Forward only), whether to actually commit the merge or not, etc... Not needed at this time, but might be nice in the future.