summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2016-05-26 01:20:41 -0500
committerEdward Thomson <ethomson@github.com>2016-05-26 01:20:41 -0500
commit06f42b62173f92c9ee74653268af53e81270d0af (patch)
treeb1400b10f8a9da87a9ec2ae926458be308ac9570 /src
parentfdf14637d5ff01bb59638f8bc01ef7cf7c3324ff (diff)
parentc864b4ab996159a2cb0905aafbccb3347560e4ac (diff)
downloadlibgit2-06f42b62173f92c9ee74653268af53e81270d0af.tar.gz
Merge branch 'checkout_submodules'
Diffstat (limited to 'src')
-rw-r--r--src/checkout.c3
-rw-r--r--src/merge.c1
2 files changed, 3 insertions, 1 deletions
diff --git a/src/checkout.c b/src/checkout.c
index d84b46ba7..b3e95dff8 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -482,7 +482,8 @@ static int checkout_action_with_wd(
*action = CHECKOUT_ACTION_IF(SAFE, REMOVE, NONE);
break;
case GIT_DELTA_MODIFIED: /* case 16, 17, 18 (or 36 but not really) */
- if (checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
+ if (wd->mode != GIT_FILEMODE_COMMIT &&
+ checkout_is_workdir_modified(data, &delta->old_file, &delta->new_file, wd))
*action = CHECKOUT_ACTION_IF(FORCE, UPDATE_BLOB, CONFLICT);
else
*action = CHECKOUT_ACTION_IF(SAFE, UPDATE_BLOB, NONE);
diff --git a/src/merge.c b/src/merge.c
index a0f2405ff..b93851b7e 100644
--- a/src/merge.c
+++ b/src/merge.c
@@ -2827,6 +2827,7 @@ static int merge_check_workdir(size_t *conflicts, git_repository *repo, git_inde
opts.flags |= GIT_DIFF_DISABLE_PATHSPEC_MATCH;
opts.pathspec.count = merged_paths->length;
opts.pathspec.strings = (char **)merged_paths->contents;
+ opts.ignore_submodules = GIT_SUBMODULE_IGNORE_ALL;
if ((error = git_diff_index_to_workdir(&wd_diff_list, repo, NULL, &opts)) < 0)
goto done;