Skip to content

Commit 5556808

Browse files
bmwillgitster
authored andcommitted
add, reset: ensure submodules can be added or reset
Commit aee9c7d (Submodules: Add the new "ignore" config option for diff and status) introduced the ignore configuration option for submodules so that configured submodules could be omitted from the status and diff commands. Because this flag is respected in the diff machinery it has the unintended consequence of potentially prohibiting users from adding or resetting a submodule, even when a path to the submodule is explicitly given. Ensure that submodules can be added or set, even if they are configured to be ignored, by setting the `DIFF_OPT_OVERRIDE_SUBMODULE_CONFIG` diff flag. Signed-off-by: Brandon Williams <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 9ef23f9 commit 5556808

File tree

2 files changed

+2
-0
lines changed

2 files changed

+2
-0
lines changed

builtin/add.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ int add_files_to_cache(const char *prefix,
116116
rev.diffopt.output_format = DIFF_FORMAT_CALLBACK;
117117
rev.diffopt.format_callback = update_callback;
118118
rev.diffopt.format_callback_data = &data;
119+
rev.diffopt.flags |= DIFF_OPT_OVERRIDE_SUBMODULE_CONFIG;
119120
rev.max_count = 0; /* do not compare unmerged paths with stage #2 */
120121
run_diff_files(&rev, DIFF_RACY_IS_MODIFIED);
121122
return !!data.add_errors;

builtin/reset.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ static int read_from_tree(const struct pathspec *pathspec,
156156
opt.output_format = DIFF_FORMAT_CALLBACK;
157157
opt.format_callback = update_index_from_diff;
158158
opt.format_callback_data = &intent_to_add;
159+
opt.flags |= DIFF_OPT_OVERRIDE_SUBMODULE_CONFIG;
159160

160161
if (do_diff_cache(tree_oid, &opt))
161162
return 1;

0 commit comments

Comments
 (0)