Merge branch 'jc/submodule-anchor-git-dir'
Having a submodule whose ".git" repository is somehow corrupt caused a few commands that recurse into submodules loop forever. * jc/submodule-anchor-git-dir: submodule: avoid auto-discovery in prepare_submodule_repo_env()maint
commit
293c232ab1
|
@ -1280,4 +1280,5 @@ void prepare_submodule_repo_env(struct argv_array *out)
|
||||||
if (strcmp(*var, CONFIG_DATA_ENVIRONMENT))
|
if (strcmp(*var, CONFIG_DATA_ENVIRONMENT))
|
||||||
argv_array_push(out, *var);
|
argv_array_push(out, *var);
|
||||||
}
|
}
|
||||||
|
argv_array_push(out, "GIT_DIR=.git");
|
||||||
}
|
}
|
||||||
|
|
|
@ -485,4 +485,39 @@ test_expect_success 'fetching submodules respects parallel settings' '
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'fetching submodule into a broken repository' '
|
||||||
|
# Prepare src and src/sub nested in it
|
||||||
|
git init src &&
|
||||||
|
(
|
||||||
|
cd src &&
|
||||||
|
git init sub &&
|
||||||
|
git -C sub commit --allow-empty -m "initial in sub" &&
|
||||||
|
git submodule add -- ./sub sub &&
|
||||||
|
git commit -m "initial in top"
|
||||||
|
) &&
|
||||||
|
|
||||||
|
# Clone the old-fashoned way
|
||||||
|
git clone src dst &&
|
||||||
|
git -C dst clone ../src/sub sub &&
|
||||||
|
|
||||||
|
# Make sure that old-fashoned layout is still supported
|
||||||
|
git -C dst status &&
|
||||||
|
|
||||||
|
# "diff" would find no change
|
||||||
|
git -C dst diff --exit-code &&
|
||||||
|
|
||||||
|
# Recursive-fetch works fine
|
||||||
|
git -C dst fetch --recurse-submodules &&
|
||||||
|
|
||||||
|
# Break the receiving submodule
|
||||||
|
rm -f dst/sub/.git/HEAD &&
|
||||||
|
|
||||||
|
# NOTE: without the fix the following tests will recurse forever!
|
||||||
|
# They should terminate with an error.
|
||||||
|
|
||||||
|
test_must_fail git -C dst status &&
|
||||||
|
test_must_fail git -C dst diff &&
|
||||||
|
test_must_fail git -C dst fetch --recurse-submodules
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in New Issue