@@ -865,6 +865,43 @@ public void CanIdentifyConflictsInMergeCommits()
865865 }
866866 }
867867
868+ [ Theory ]
869+ [ InlineData ( "conflicts_spaces" ) ]
870+ [ InlineData ( "conflicts_tabs" ) ]
871+ public void CanConflictOnWhitespaceChangeMergeConflict ( string branchName )
872+ {
873+ string path = SandboxMergeTestRepo ( ) ;
874+ using ( var repo = new Repository ( path ) )
875+ {
876+ var mergeResult = repo . Merge ( branchName , Constants . Signature , new MergeOptions ( ) ) ;
877+ Assert . Equal ( MergeStatus . Conflicts , mergeResult . Status ) ;
878+
879+ var master = repo . Branches [ "master" ] ;
880+ var branch = repo . Branches [ branchName ] ;
881+ var mergeTreeResult = repo . ObjectDatabase . MergeCommits ( master . Tip , branch . Tip , new MergeTreeOptions ( ) ) ;
882+ Assert . Equal ( MergeTreeStatus . Conflicts , mergeTreeResult . Status ) ;
883+ }
884+ }
885+
886+ [ Theory ]
887+ [ InlineData ( "conflicts_spaces" ) ]
888+ [ InlineData ( "conflicts_tabs" ) ]
889+ public void CanIgnoreWhitespaceChangeMergeConflict ( string branchName )
890+ {
891+ string path = SandboxMergeTestRepo ( ) ;
892+ using ( var repo = new Repository ( path ) )
893+ {
894+ var mergeResult = repo . Merge ( branchName , Constants . Signature , new MergeOptions ( ) { IgnoreWhitespaceChange = true } ) ;
895+ Assert . NotEqual ( MergeStatus . Conflicts , mergeResult . Status ) ;
896+
897+ var master = repo . Branches [ "master" ] ;
898+ var branch = repo . Branches [ branchName ] ;
899+ var mergeTreeResult = repo . ObjectDatabase . MergeCommits ( master . Tip , branch . Tip , new MergeTreeOptions ( ) { IgnoreWhitespaceChange = true } ) ;
900+ Assert . NotEqual ( MergeTreeStatus . Conflicts , mergeTreeResult . Status ) ;
901+ Assert . Empty ( mergeTreeResult . Conflicts ) ;
902+ }
903+ }
904+
868905 private Commit AddFileCommitToRepo ( IRepository repository , string filename , string content = null )
869906 {
870907 Touch ( repository . Info . WorkingDirectory , filename , content ) ;
0 commit comments