aboutsummaryrefslogtreecommitdiff
path: root/submodule.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2016-02-22 12:23:26 +0100
committerJunio C Hamano <gitster@pobox.com>2016-02-22 10:23:52 -0800
commit1a90dfe8a7e3fae31aa0b13b799bd3345e91e985 (patch)
tree7d6a2723bfd0dfdd6eddd9391376c20deb0f6f30 /submodule.c
parentbd25f890146f7e39b18f67113f1bf2e4741a4fb4 (diff)
downloadgit-1a90dfe8a7e3fae31aa0b13b799bd3345e91e985.tar.gz
git-1a90dfe8a7e3fae31aa0b13b799bd3345e91e985.tar.xz
submodule: die on config error when linking modules
When trying to connect a submodule with its corresponding repository in '.git/modules' we try to set the core.worktree setting in the submodule, which may fail due to an error encountered in `git_config_set_in_file`. The function is used in the git-mv command when trying to move a submodule to another location. We already die when renaming a file fails but do not pay attention to the case where updating the connection between submodule and its repository fails. As this leaves the repository in an inconsistent state, as well, abort the program by dying early and presenting the failure to the user. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'submodule.c')
-rw-r--r--submodule.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/submodule.c b/submodule.c
index 14e76247b..278b08795 100644
--- a/submodule.c
+++ b/submodule.c
@@ -1034,11 +1034,9 @@ void connect_work_tree_and_git_dir(const char *work_tree, const char *git_dir)
/* Update core.worktree setting */
strbuf_reset(&file_name);
strbuf_addf(&file_name, "%s/config", git_dir);
- if (git_config_set_in_file(file_name.buf, "core.worktree",
- relative_path(real_work_tree, git_dir,
- &rel_path)))
- die(_("Could not set core.worktree in %s"),
- file_name.buf);
+ git_config_set_in_file_or_die(file_name.buf, "core.worktree",
+ relative_path(real_work_tree, git_dir,
+ &rel_path));
strbuf_release(&file_name);
strbuf_release(&rel_path);