From: Oleg Broytman Date: Thu, 27 May 2021 17:34:23 +0000 (+0300) Subject: Add script `submodules/diff-name-only` X-Git-Url: https://git.phdru.name/?p=git-scripts.git;a=commitdiff_plain;h=7ca782188bb509b1ba815f6842834509611f4687 Add script `submodules/diff-name-only` --- diff --git a/submodules/diff-name-only b/submodules/diff-name-only new file mode 100755 index 0000000..d513613 --- /dev/null +++ b/submodules/diff-name-only @@ -0,0 +1,20 @@ +#! /bin/sh +# See the discussion at https://stackoverflow.com/q/67724347/7976758 + +if [ -z "$1" ]; then + echo "Usage $0 from_commit [to_commit]" + exit 1 +fi + +from_commit="$1" +to_commit="${2:-HEAD}" + +# 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 +"