#! /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 "