From c5e4601c3938434c414a232ae3bb5d368d25d871 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Sat, 29 May 2021 00:56:56 +0300 Subject: [PATCH] Feat(submodules/diff-name-only): Run recursively --- submodules/diff-name-only | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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 +' -- 2.39.5