summaryrefslogtreecommitdiff
path: root/builtin/submodule--helper.c
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-11-25 04:15:44 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-11-25 05:08:25 (GMT)
commit1f3aea22c781d603d56ce794879a8fe8d8dd77d1 (patch)
tree2885e4bdb247daa8a8e8227cc1c433c943821a04 /builtin/submodule--helper.c
parent5fa0f5238b0cd46cfe7f6fa76c3f526ea98148d9 (diff)
downloadgit-1f3aea22c781d603d56ce794879a8fe8d8dd77d1.zip
git-1f3aea22c781d603d56ce794879a8fe8d8dd77d1.tar.gz
git-1f3aea22c781d603d56ce794879a8fe8d8dd77d1.tar.bz2
submodule: fix 'submodule status' when called from a subdirectory
When calling `git submodule status` while in a subdirectory, we are incorrectly not detecting modified submodules and thus reporting that all of the submodules are unchanged. This is because the submodule helper is calling `diff-index` with the submodule path assuming the path is relative to the current prefix directory, however the submodule path used is actually relative to the root. Always pass NULL as the `prefix` when running diff-files on the submodule, to make sure the submodule's path is interpreted as relative to the superproject's repository root. Signed-off-by: Manish Goregaokar <manishsmail@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/submodule--helper.c')
-rw-r--r--builtin/submodule--helper.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 909e77e..eeea8df 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -802,7 +802,8 @@ static void status_submodule(const char *path, const struct object_id *ce_oid,
path, NULL);
git_config(git_diff_basic_config, NULL);
- repo_init_revisions(the_repository, &rev, prefix);
+
+ repo_init_revisions(the_repository, &rev, NULL);
rev.abbrev = 0;
diff_files_args.argc = setup_revisions(diff_files_args.argc,
diff_files_args.argv,