ls-files: prevent prune_cache from overeagerly pruning submodules
[gitweb.git] / builtin / add.c
index 9f53f020d0fc7184ac803a4346bdf426a814ed72..86770d6af4773470cef19ef230a6f0eb8c246a3a 100644 (file)
@@ -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,16 +380,19 @@ 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.
         */
        parse_pathspec(&pathspec, 0,
                       PATHSPEC_PREFER_FULL |
-                      PATHSPEC_SYMLINK_LEADING_PATH |
-                      PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE,
+                      PATHSPEC_SYMLINK_LEADING_PATH,
                       prefix, argv);
 
+       die_path_inside_submodule(&the_index, &pathspec);
+
        if (add_new_files) {
                int baselen;