What were you thinking should happen if either of these states were true? A different returned enum value (as I've put in the enum result return that you suggested above)? Or throw an exception? There is already a MergeConflictException that's thrown with conflicting uncommitted changes but it looks to just wrap the associated error from libgit2 so I'd guess you'd want new exceptions if this was the chosen path.