Use apostrophes for the internal script.
Export variables from the external shell
to be available in the internal script.
from_commit="$1"
to_commit="${2:-HEAD}"
+export from_commit to_commit
# In the superproject
git --no-pager diff --name-only "$from_commit" "$to_commit"
-git submodule foreach "
- # In submodule \"\$name\"
- prev_commit=\`(git -C \"\$toplevel\" ls-tree "$from_commit" \"\$sm_path\" | awk '{print \$3}')\`
- curr_commit=\`(git -C \"\$toplevel\" ls-tree "$to_commit" \"\$sm_path\" | awk '{print \$3}')\`
- git --no-pager diff --name-only \$prev_commit \$curr_commit
-"
+git submodule foreach '
+ # In submodule "$name"
+ prev_commit=`(git -C "$toplevel" ls-tree "$from_commit" "$sm_path" | awk "{print \\$3}")`
+ curr_commit=`(git -C "$toplevel" ls-tree "$to_commit" "$sm_path" | awk "{print \\$3}")`
+ git --no-pager diff --name-only $prev_commit $curr_commit
+'