@@ -1329,8 +1329,8 @@ public RevertResult Revert(Commit commit, Signature reverter, RevertOptions opti
1329
1329
{
1330
1330
Version = 1 ,
1331
1331
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 ,
1334
1334
RenameThreshold = ( uint ) options . RenameThreshold ,
1335
1335
TargetLimit = ( uint ) options . TargetLimit ,
1336
1336
} ;
@@ -1413,8 +1413,8 @@ public CherryPickResult CherryPick(Commit commit, Signature committer, CherryPic
1413
1413
{
1414
1414
Version = 1 ,
1415
1415
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 ,
1418
1418
RenameThreshold = ( uint ) options . RenameThreshold ,
1419
1419
TargetLimit = ( uint ) options . TargetLimit ,
1420
1420
} ;
@@ -1553,21 +1553,39 @@ private MergeResult Merge(GitAnnotatedCommitHandle[] annotatedCommits, Signature
1553
1553
private MergeResult NormalMerge ( GitAnnotatedCommitHandle [ ] annotatedCommits , Signature merger , MergeOptions options )
1554
1554
{
1555
1555
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
+
1556
1569
var mergeOptions = new GitMergeOpts
1557
1570
{
1558
1571
Version = 1 ,
1559
1572
MergeFileFavorFlags = options . MergeFileFavor ,
1560
- MergeTreeFlags = options . FindRenames ? GitMergeTreeFlags . GIT_MERGE_TREE_FIND_RENAMES
1561
- : GitMergeTreeFlags . GIT_MERGE_TREE_NORMAL ,
1573
+ MergeTreeFlags = treeFlags ,
1562
1574
RenameThreshold = ( uint ) options . RenameThreshold ,
1563
1575
TargetLimit = ( uint ) options . TargetLimit ,
1564
1576
} ;
1565
1577
1578
+ bool earlyStop ;
1566
1579
using ( GitCheckoutOptsWrapper checkoutOptionsWrapper = new GitCheckoutOptsWrapper ( options ) )
1567
1580
{
1568
1581
var checkoutOpts = checkoutOptionsWrapper . Options ;
1569
1582
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 ) ;
1571
1589
}
1572
1590
1573
1591
if ( Index . IsFullyMerged )
0 commit comments