summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorLibravatar Brandon Williams <bmwill@google.com>2017-05-09 12:17:59 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-05-10 14:47:39 +0900
commitbdab972153a73815e04e9699406433e409ed28ab (patch)
tree0f6210c3fbab3473680f3459cf69d498e0ea6319 /builtin
parentpathspec: provide a more descriptive die message (diff)
downloadtgif-bdab972153a73815e04e9699406433e409ed28ab.tar.xz
submodule: add die_in_unpopulated_submodule function
Currently 'git add' is the only command which dies when launched from an unpopulated submodule (the place-holder directory for a submodule which hasn't been checked out). This is triggered implicitly by passing the PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag to 'parse_pathspec()'. Instead make this desire more explicit by creating a function 'die_in_unpopulated_submodule()' which dies if the provided 'prefix' has a leading path component which matches a submodule in the the index. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/add.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/builtin/add.c b/builtin/add.c
index 9f53f020d0..ec58e36796 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -17,6 +17,7 @@
#include "revision.h"
#include "bulk-checkin.h"
#include "argv-array.h"
+#include "submodule.h"
static const char * const builtin_add_usage[] = {
N_("git add [<options>] [--] <pathspec>..."),
@@ -379,6 +380,8 @@ int cmd_add(int argc, const char **argv, const char *prefix)
if (read_cache() < 0)
die(_("index file corrupt"));
+ die_in_unpopulated_submodule(&the_index, prefix);
+
/*
* Check the "pathspec '%s' did not match any files" block
* below before enabling new magic.