]> git.phdru.name Git - git-scripts.git/blob - submodules/diff-name-only
Feat(submodules/diff-name-only): Use `rev-parse`
[git-scripts.git] / submodules / diff-name-only
1 #! /bin/sh
2 # See the discussion at https://stackoverflow.com/q/67724347/7976758
3
4 if [ -z "$1" ]; then
5     echo "Usage $0 from_commit [to_commit]"
6     exit 1
7 fi
8
9 if [ -z "$prog_dir" -o -z "$prog_name" ]; then
10     start_dir="`pwd`"
11     prog_dir="`dirname \"$0\"`"
12     prog_name="`basename \"$0\"`"
13     cd "$prog_dir"
14     # Get full path
15     prog_dir="`pwd`"
16     cd "$start_dir"
17     export prog_dir prog_name
18 fi
19
20 from_commit="$1"
21 to_commit="${2:-HEAD}"
22 export from_commit to_commit
23
24 # In the superproject
25 git --no-pager diff --name-only "$from_commit" "$to_commit"
26
27 git submodule foreach '
28     # In submodule "$name"
29     prev_commit=`(git -C "$toplevel" rev-parse "$from_commit":"$sm_path")`
30     curr_commit=`(git -C "$toplevel" rev-parse "$to_commit":"$sm_path")`
31     "$prog_dir/$prog_name" $prev_commit $curr_commit
32 '