@@ -1329,8 +1329,8 @@ public RevertResult Revert(Commit commit, Signature reverter, RevertOptions opti
13291329 {
13301330 Version = 1 ,
13311331 MergeFileFavorFlags = options . MergeFileFavor ,
1332- MergeTreeFlags = options . FindRenames ? GitMergeTreeFlags . GIT_MERGE_TREE_FIND_RENAMES :
1333- GitMergeTreeFlags . GIT_MERGE_TREE_NORMAL ,
1332+ MergeTreeFlags = options . FindRenames ? GitMergeFlag . GIT_MERGE_FIND_RENAMES :
1333+ GitMergeFlag . GIT_MERGE_NORMAL ,
13341334 RenameThreshold = ( uint ) options . RenameThreshold ,
13351335 TargetLimit = ( uint ) options . TargetLimit ,
13361336 } ;
@@ -1413,8 +1413,8 @@ public CherryPickResult CherryPick(Commit commit, Signature committer, CherryPic
14131413 {
14141414 Version = 1 ,
14151415 MergeFileFavorFlags = options . MergeFileFavor ,
1416- MergeTreeFlags = options . FindRenames ? GitMergeTreeFlags . GIT_MERGE_TREE_FIND_RENAMES :
1417- GitMergeTreeFlags . GIT_MERGE_TREE_NORMAL ,
1416+ MergeTreeFlags = options . FindRenames ? GitMergeFlag . GIT_MERGE_FIND_RENAMES :
1417+ GitMergeFlag . GIT_MERGE_NORMAL ,
14181418 RenameThreshold = ( uint ) options . RenameThreshold ,
14191419 TargetLimit = ( uint ) options . TargetLimit ,
14201420 } ;
@@ -1553,21 +1553,39 @@ private MergeResult Merge(GitAnnotatedCommitHandle[] annotatedCommits, Signature
15531553 private MergeResult NormalMerge ( GitAnnotatedCommitHandle [ ] annotatedCommits , Signature merger , MergeOptions options )
15541554 {
15551555 MergeResult mergeResult ;
1556+ GitMergeFlag treeFlags = options . FindRenames ? GitMergeFlag . GIT_MERGE_FIND_RENAMES
1557+ : GitMergeFlag . GIT_MERGE_NORMAL ;
1558+
1559+ if ( options . FailOnConflict )
1560+ {
1561+ treeFlags |= GitMergeFlag . GIT_MERGE_FAIL_ON_CONFLICT ;
1562+ }
1563+
1564+ if ( options . SkipReuc )
1565+ {
1566+ treeFlags |= GitMergeFlag . GIT_MERGE_SKIP_REUC ;
1567+ }
1568+
15561569 var mergeOptions = new GitMergeOpts
15571570 {
15581571 Version = 1 ,
15591572 MergeFileFavorFlags = options . MergeFileFavor ,
1560- MergeTreeFlags = options . FindRenames ? GitMergeTreeFlags . GIT_MERGE_TREE_FIND_RENAMES
1561- : GitMergeTreeFlags . GIT_MERGE_TREE_NORMAL ,
1573+ MergeTreeFlags = treeFlags ,
15621574 RenameThreshold = ( uint ) options . RenameThreshold ,
15631575 TargetLimit = ( uint ) options . TargetLimit ,
15641576 } ;
15651577
1578+ bool earlyStop ;
15661579 using ( GitCheckoutOptsWrapper checkoutOptionsWrapper = new GitCheckoutOptsWrapper ( options ) )
15671580 {
15681581 var checkoutOpts = checkoutOptionsWrapper . Options ;
15691582
1570- Proxy . git_merge ( Handle , annotatedCommits , mergeOptions , checkoutOpts ) ;
1583+ Proxy . git_merge ( Handle , annotatedCommits , mergeOptions , checkoutOpts , out earlyStop ) ;
1584+ }
1585+
1586+ if ( earlyStop )
1587+ {
1588+ return new MergeResult ( MergeStatus . Conflicts ) ;
15711589 }
15721590
15731591 if ( Index . IsFullyMerged )
0 commit comments