path: root/builtin
diff options
authorBrandon Williams <>2017-08-02 19:49:20 (GMT)
committerJunio C Hamano <>2017-08-02 21:26:46 (GMT)
commit91b834807b98b620050fe534b6de93e223dbcbcf (patch)
tree6fe6b91d477bae8b1ccbba44eb1b29661bd9efc5 /builtin
parent8fa2915971e5032e6a32f5096452db81ab8795eb (diff)
submodule: check for unstaged .gitmodules outside of config parsing
Teach 'is_staging_gitmodules_ok()' to be able to determine in the '.gitmodules' file has unstaged changes based on the passed in index instead of relying on a global variable which is set during the submodule-config parsing. Signed-off-by: Brandon Williams <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin')
2 files changed, 2 insertions, 2 deletions
diff --git a/builtin/mv.c b/builtin/mv.c
index dcf6736..94fbaaa 100644
--- a/builtin/mv.c
+++ b/builtin/mv.c
@@ -81,7 +81,7 @@ static void prepare_move_submodule(const char *src, int first,
struct strbuf submodule_dotgit = STRBUF_INIT;
if (!S_ISGITLINK(active_cache[first]->ce_mode))
die(_("Directory %s is in index and no submodule?"), src);
- if (!is_staging_gitmodules_ok())
+ if (!is_staging_gitmodules_ok(&the_index))
die(_("Please stage your changes to .gitmodules or stash them to proceed"));
strbuf_addf(&submodule_dotgit, "%s/.git", src);
*submodule_gitfile = read_gitfile(submodule_dotgit.buf);
diff --git a/builtin/rm.c b/builtin/rm.c
index 52826d1..4057e73 100644
--- a/builtin/rm.c
+++ b/builtin/rm.c
@@ -286,7 +286,7 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
list.entry[].name = xstrdup(ce->name);
list.entry[].is_submodule = S_ISGITLINK(ce->ce_mode);
if (list.entry[].is_submodule &&
- !is_staging_gitmodules_ok())
+ !is_staging_gitmodules_ok(&the_index))
die (_("Please stage your changes to .gitmodules or stash them to proceed"));