From: Oleg Broytman Date: Fri, 28 May 2021 21:56:56 +0000 (+0300) Subject: Feat(submodules/diff-name-only): Run recursively X-Git-Url: https://git.phdru.name/?p=git-scripts.git;a=commitdiff_plain;h=c5e4601c3938434c414a232ae3bb5d368d25d871 Feat(submodules/diff-name-only): Run recursively --- diff --git a/submodules/diff-name-only b/submodules/diff-name-only index 3736e8e..445df52 100755 --- a/submodules/diff-name-only +++ b/submodules/diff-name-only @@ -6,16 +6,27 @@ if [ -z "$1" ]; then exit 1 fi +if [ -z "$prog_dir" -o -z "$prog_name" ]; then + start_dir="`pwd`" + prog_dir="`dirname \"$0\"`" + prog_name="`basename \"$0\"`" + cd "$prog_dir" + # Get full path + prog_dir="`pwd`" + cd "$start_dir" + export prog_dir prog_name +fi + 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 --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 -'; } | { test -t 1 && ${PAGER:-less} || cat -; } + "$prog_dir/$prog_name" $prev_commit $curr_commit +'