]> git.phdru.name Git - git-scripts.git/blobdiff - submodules/diff-name-only
Feat(submodules/remove): Add option `-c`
[git-scripts.git] / submodules / diff-name-only
index 3736e8eaa926684662285496b3fd2ea7f5e74f4c..90f481d4cf310d84457fee7107ec2ffd824e7744 100755 (executable)
@@ -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 -; }
+    prev_commit=`(git -C "$toplevel" rev-parse "$from_commit":"$sm_path")`
+    curr_commit=`(git -C "$toplevel" rev-parse "$to_commit":"$sm_path")`
+    "$prog_dir/$prog_name" $prev_commit $curr_commit
+'