{"thread":{"id":"65976","subject":"[PATCH] fixup! fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal","startedAt":"2026-07-11T13:25:41Z","lastAt":"2026-07-11T20:55:23Z","messageCount":2,"participants":["Ramsay Jones","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"547819","messageId":"387a34d5-fdf5-4513-9aaf-4e73d9304c1d@ramsayjones.plus.com","threadId":"65976","inReplyTo":null,"subject":"[PATCH] fixup! fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2026-07-11T13:22:30Z","receivedAt":"2026-07-11T13:25:41Z","isPatch":true,"body":"\nSigned-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\n---\n\nHi Junio,\n\nYou have probably already noticed, but just in case, I had to fixup commit df9481e6d6\n(\"fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal\", 2026-07-10)\nin order to get a clean test-suite run on the 'seen' branch (@a77a48500d) this afternoon.\n\n[this is part of the 'pz/fetch-submodule-errors-config' branch].\n\nThanks.\n\nATB,\nRamsay Jones\n\n\n t/t5526-fetch-submodules.sh | 18 +++++++++---------\n 1 file changed, 9 insertions(+), 9 deletions(-)\n\ndiff --git a/t/t5526-fetch-submodules.sh b/t/t5526-fetch-submodules.sh\nindex 7ccc80048b..4bb6d483be 100755\n--- a/t/t5526-fetch-submodules.sh\n+++ b/t/t5526-fetch-submodules.sh\n@@ -1312,7 +1312,7 @@ test_expect_success 'fetch --recurse-submodules fails when submodule commit is u\n \tcreate_err_env env_default &&\n \tpush_unreachable_commit env_default &&\n \ttest_must_fail git -C env_default/clone fetch --recurse-submodules 2>err &&\n-\tgrep \"Errors during submodule fetch\" err\n+\ttest_grep \"Errors during submodule fetch\" err\n '\n \n test_expect_success 'fetch.submoduleErrors=warn: unreachable submodule commit is non-fatal' '\n@@ -1321,7 +1321,7 @@ test_expect_success 'fetch.submoduleErrors=warn: unreachable submodule commit is\n \tpush_unreachable_commit env_warn_cfg &&\n \tgit -C env_warn_cfg/clone -c fetch.submoduleErrors=warn \\\n \t\tfetch --recurse-submodules 2>err &&\n-\tgrep \"Errors during submodule fetch\" err\n+\ttest_grep \"Errors during submodule fetch\" err\n '\n \n test_expect_success '--submodule-errors=warn: unreachable submodule commit is non-fatal' '\n@@ -1330,7 +1330,7 @@ test_expect_success '--submodule-errors=warn: unreachable submodule commit is no\n \tpush_unreachable_commit env_warn_cli &&\n \tgit -C env_warn_cli/clone fetch --recurse-submodules \\\n \t\t--submodule-errors=warn 2>err &&\n-\tgrep \"Errors during submodule fetch\" err\n+\ttest_grep \"Errors during submodule fetch\" err\n '\n \n test_expect_success '--submodule-errors=fail: unreachable submodule commit is fatal' '\n@@ -1339,7 +1339,7 @@ test_expect_success '--submodule-errors=fail: unreachable submodule commit is fa\n \tpush_unreachable_commit env_fail_cli &&\n \ttest_must_fail git -C env_fail_cli/clone fetch --recurse-submodules \\\n \t\t--submodule-errors=fail 2>err &&\n-\tgrep \"Errors during submodule fetch\" err\n+\ttest_grep \"Errors during submodule fetch\" err\n '\n \n test_expect_success 'fetch.submoduleErrors=warn does not suppress successful fetch' '\n@@ -1355,7 +1355,7 @@ test_expect_success 'fetch.submoduleErrors=warn does not suppress successful fet\n \tgit -C env_ok/super_work push &&\n \tgit -C env_ok/clone -c fetch.submoduleErrors=warn \\\n \t\tfetch --recurse-submodules 2>err &&\n-\t! grep \"Errors during submodule fetch\" err\n+\ttest_grep ! \"Errors during submodule fetch\" err\n '\n \n test_expect_success 'failed submodule fetch is fatal even when its commits are present locally' '\n@@ -1382,7 +1382,7 @@ test_expect_success 'failed submodule fetch is fatal even when its commits are p\n \tgit -C env_phase1/super_work push &&\n \tgit -C env_phase1/clone/sub remote set-url origin \"$pwd/env_phase1/missing\" &&\n \ttest_must_fail git -C env_phase1/clone fetch --recurse-submodules 2>err &&\n-\tgrep \"Errors during submodule fetch\" err\n+\ttest_grep \"Errors during submodule fetch\" err\n '\n \n test_expect_success '--submodule-errors=warn is honored by fetch --all' '\n@@ -1395,7 +1395,7 @@ test_expect_success '--submodule-errors=warn is honored by fetch --all' '\n \tgit -C env_all/clone remote add second \"$pwd/env_all/super_bare\" &&\n \tgit -C env_all/clone fetch --all --recurse-submodules \\\n \t\t--submodule-errors=warn 2>err &&\n-\tgrep \"Errors during submodule fetch\" err\n+\ttest_grep \"Errors during submodule fetch\" err\n '\n \n test_expect_success 'fetch.submoduleErrors=warn: inaccessible submodule is non-fatal' '\n@@ -1405,9 +1405,9 @@ test_expect_success 'fetch.submoduleErrors=warn: inaccessible submodule is non-f\n \trm -r env_access/clone/.git/modules/sub &&\n \tgit -C env_access/clone -c fetch.submoduleErrors=warn \\\n \t\tfetch --recurse-submodules 2>err &&\n-\tgrep \"Could not access submodule\" err &&\n+\ttest_grep \"Could not access submodule\" err &&\n \ttest_must_fail git -C env_access/clone fetch --recurse-submodules 2>err &&\n-\tgrep \"Could not access submodule\" err\n+\ttest_grep \"Could not access submodule\" err\n '\n \n test_done\n-- \n2.55.0\n"},{"id":"547862","messageId":"xmqqzezx9rgn.fsf@gitster.g","threadId":"65976","inReplyTo":"387a34d5-fdf5-4513-9aaf-4e73d9304c1d@ramsayjones.plus.com","subject":"Re: [PATCH] fixup! fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-07-11T20:55:20Z","receivedAt":"2026-07-11T20:55:23Z","isPatch":true,"body":"Ramsay Jones <ramsay@ramsayjones.plus.com> writes:\n\n> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>\n> ---\n>\n> Hi Junio,\n>\n> You have probably already noticed, but just in case, I had to fixup commit df9481e6d6\n> (\"fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal\", 2026-07-10)\n> in order to get a clean test-suite run on the 'seen' branch (@a77a48500d) this afternoon.\n>\n> [this is part of the 'pz/fetch-submodule-errors-config' branch].\n\nThanks.  I am being lazy and expecting the author to send in a fix\nbefore my next integration cycle ;-)\n\n> -\tgrep \"Errors during submodule fetch\" err\n> +\ttest_grep \"Errors during submodule fetch\" err\n"}]}