Junio C Hamano <gitster@xxxxxxxxx> writes: > I was wondering if we should unconditionally stuff GIT_DIR=<the > repository location for the submodule> in the cp.env_array passed to > the function prepare_submodule_repo_env(). As cp.dir will be set to > the submodule's working tree, there is no need to set GIT_WORK_TREE > and export it, I think, although it would not hurt. After checking all callers of prepare_submodule_repo_env() and saw that cp.dir is set to the top of working directory for the submodule, I wonder if something as simple and stupid like the attached patch is sufficient. Our subprocess will go there, and there should be a .git embedded directory or a .git file that points into .git/modules/* in the superproject, and either way, it should use .git directly underneath it. submodule.c | 1 + 1 file changed, 1 insertion(+) diff --git a/submodule.c b/submodule.c index 1b5cdfb..e8258f0 100644 --- a/submodule.c +++ b/submodule.c @@ -1160,4 +1160,5 @@ void prepare_submodule_repo_env(struct argv_array *out) if (strcmp(*var, CONFIG_DATA_ENVIRONMENT)) argv_array_push(out, *var); } + argv_array_push(out, "GIT_DIR=.git"); }