Skip to content

Commit 614ea03

Browse files
committed
Merge branch 'bw/submodule-config-cleanup'
Code clean-up to avoid mixing values read from the .gitmodules file and values read from the .git/config file. * bw/submodule-config-cleanup: submodule: remove gitmodules_config unpack-trees: improve loading of .gitmodules submodule-config: lazy-load a repository's .gitmodules file submodule-config: move submodule-config functions to submodule-config.c submodule-config: remove support for overlaying repository config diff: stop allowing diff to have submodules configured in .git/config submodule: remove submodule_config callback routine unpack-trees: don't respect submodule.update submodule: don't rely on overlayed config when setting diffopts fetch: don't overlay config with submodule-config submodule--helper: don't overlay config in update-clone submodule--helper: don't overlay config in remote_submodule_branch add, reset: ensure submodules can be added or reset submodule: don't use submodule_from_name t7411: check configuration parsing errors
2 parents 2adb614 + 557a599 commit 614ea03

25 files changed

+192
-373
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/checkout.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ static int git_checkout_config(const char *var, const char *value, void *cb)
861861
}
862862

863863
if (starts_with(var, "submodule."))
864-
return submodule_config(var, value, NULL);
864+
return git_default_submodule_config(var, value, NULL);
865865

866866
return git_xmerge_config(var, value, NULL);
867867
}
@@ -1182,7 +1182,6 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
11821182
opts.prefix = prefix;
11831183
opts.show_progress = -1;
11841184

1185-
gitmodules_config();
11861185
git_config(git_checkout_config, &opts);
11871186

11881187
opts.track = BRANCH_TRACK_UNSPECIFIED;

builtin/commit.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,6 @@ static void determine_whence(struct wt_status *s)
195195
static void status_init_config(struct wt_status *s, config_fn_t fn)
196196
{
197197
wt_status_prepare(s);
198-
gitmodules_config();
199198
git_config(fn, s);
200199
determine_whence(s);
201200
init_diff_ui_defaults();

builtin/diff-files.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix)
2626

2727
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
2828
init_revisions(&rev, prefix);
29-
gitmodules_config();
3029
rev.abbrev = 0;
3130
precompose_argv(argc, argv);
3231

builtin/diff-index.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix)
2323

2424
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
2525
init_revisions(&rev, prefix);
26-
gitmodules_config();
2726
rev.abbrev = 0;
2827
precompose_argv(argc, argv);
2928

builtin/diff-tree.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
110110

111111
git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
112112
init_revisions(opt, prefix);
113-
gitmodules_config();
114113
opt->abbrev = 0;
115114
opt->diff = 1;
116115
opt->disable_stdin = 1;

builtin/diff.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,8 +315,6 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
315315
no_index = DIFF_NO_INDEX_IMPLICIT;
316316
}
317317

318-
if (!no_index)
319-
gitmodules_config();
320318
init_diff_ui_defaults();
321319
git_config(git_diff_ui_config, NULL);
322320
precompose_argv(argc, argv);

builtin/fetch.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,11 +1360,6 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
13601360
if (depth || deepen_since || deepen_not.nr)
13611361
deepen = 1;
13621362

1363-
if (recurse_submodules != RECURSE_SUBMODULES_OFF) {
1364-
gitmodules_config();
1365-
git_config(submodule_config, NULL);
1366-
}
1367-
13681363
if (all) {
13691364
if (argc == 1)
13701365
die(_("fetch --all does not take a repository argument"));

builtin/grep.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,10 +1048,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
10481048
}
10491049
#endif
10501050

1051-
if (recurse_submodules) {
1052-
gitmodules_config();
1053-
}
1054-
10551051
if (show_in_pager && (cached || list.nr))
10561052
die(_("--open-files-in-pager only works on the worktree"));
10571053

builtin/ls-files.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "pathspec.h"
2020
#include "run-command.h"
2121
#include "submodule.h"
22+
#include "submodule-config.h"
2223

2324
static int abbrev;
2425
static int show_deleted;
@@ -210,8 +211,6 @@ static void show_submodule(struct repository *superproject,
210211
if (repo_read_index(&submodule) < 0)
211212
die("index file corrupt");
212213

213-
repo_read_gitmodules(&submodule);
214-
215214
show_files(&submodule, dir);
216215

217216
repo_clear(&submodule);
@@ -609,9 +608,6 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
609608
if (require_work_tree && !is_inside_work_tree())
610609
setup_work_tree();
611610

612-
if (recurse_submodules)
613-
repo_read_gitmodules(the_repository);
614-
615611
if (recurse_submodules &&
616612
(show_stage || show_deleted || show_others || show_unmerged ||
617613
show_killed || show_modified || show_resolve_undo || with_tree))

0 commit comments

Comments
 (0)