From: Junio C Hamano Date: Mon, 29 Jul 2019 19:38:18 +0000 (-0700) Subject: Merge branch 'ms/submodule-foreach-fix' into maint X-Git-Tag: v2.23.0-rc0~1^2~13 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/292a0de9982aff5e4f952214c1b9f762d8a1585a Merge branch 'ms/submodule-foreach-fix' into maint "git submodule foreach" did not protect command line options passed to the command to be run in each submodule correctly, when the "--recursive" option was in use. * ms/submodule-foreach-fix: submodule foreach: fix recursion of options --- 292a0de9982aff5e4f952214c1b9f762d8a1585a diff --cc t/t7407-submodule-foreach.sh index 706ae762e0,57e4b7f990..6b2aa917e1 --- a/t/t7407-submodule-foreach.sh +++ b/t/t7407-submodule-foreach.sh @@@ -411,14 -411,11 +411,21 @@@ test_expect_success 'multi-argument com test_cmp expected actual ' +test_expect_success 'option-like arguments passed to foreach commands are not lost' ' + ( + cd super && + git submodule foreach "echo be --quiet" > ../expected && + git submodule foreach echo be --quiet > ../actual + ) && + grep -sq -e "--quiet" expected && + test_cmp expected actual +' + + test_expect_success 'option-like arguments passed to foreach recurse correctly' ' + git -C clone2 submodule foreach --recursive "echo be --an-option" >expect && + git -C clone2 submodule foreach --recursive echo be --an-option >actual && + grep -e "--an-option" expect && + test_cmp expect actual + ' + test_done