Fixed handling of GIT_DELTA_CONFLICTED in git_diff_find_similar()

git_diff_find_similar() now ignores git_diff_delta records with a status
of GIT_DELTA_CONFLICTED, which fixes a crash due to assert() being hit.
This commit is contained in:
Pierre-Olivier Latour 2015-06-10 10:09:10 -07:00
parent da6720fcc5
commit 50456801c0

View File

@ -676,11 +676,13 @@ static bool is_rename_target(
return false;
/* only consider ADDED, RENAMED, COPIED, and split MODIFIED as
* targets; maybe include UNTRACKED and IGNORED if requested.
* targets; maybe include UNTRACKED if requested.
*/
switch (delta->status) {
case GIT_DELTA_UNMODIFIED:
case GIT_DELTA_DELETED:
case GIT_DELTA_IGNORED:
case GIT_DELTA_CONFLICTED:
return false;
case GIT_DELTA_MODIFIED:
@ -707,9 +709,6 @@ static bool is_rename_target(
return false;
break;
case GIT_DELTA_IGNORED:
return false;
default: /* all other status values should be checked */
break;
}
@ -735,6 +734,7 @@ static bool is_rename_source(
case GIT_DELTA_UNTRACKED:
case GIT_DELTA_UNREADABLE:
case GIT_DELTA_IGNORED:
case GIT_DELTA_CONFLICTED:
return false;
case GIT_DELTA_DELETED: