X-Git-Url: https://oss.titaniummirror.com/gitweb?p=git-utils.git;a=blobdiff_plain;f=git-diffall;fp=git-diffall;h=dd8dd46fcb856b5d128050b63aaf625bf15cab84;hp=0000000000000000000000000000000000000000;hb=36c971cd275c4def7a9c8724fae4601f7bbd6c99;hpb=64ee825074103d07de39f0f4e6ca3adb2af174a2 diff --git a/git-diffall b/git-diffall new file mode 100755 index 0000000..dd8dd46 --- /dev/null +++ b/git-diffall @@ -0,0 +1,38 @@ +#!/bin/sh + +. "$(git --exec-path)/git-sh-setup" +cd_to_toplevel # for the tar below + +pre="${1-HEAD}" +post="$2" + +tmp="$(mktemp -d)" + +cleanup () { + rm -rf $tmp +} + +trap cleanup EXIT + +mkdir "$tmp"/a "$tmp"/b + +if [ -n "$post" ]; then + git diff --name-only "$pre" "$post" > "$tmp"/filelist + while read name; do + mkdir -p "$tmp"/b/"$(dirname "$name")" + git show "$post":"$name" > "$tmp"/b/"$name" + done < "$tmp"/filelist +else + git diff --name-only "$pre" > "$tmp"/filelist + tar -c -T "$tmp"/filelist | (cd "$tmp"/b && tar -x) +fi + +while read name; do + mkdir -p "$tmp"/a/"$(dirname "$name")" + git show "$pre":"$name" > "$tmp"/a/"$name" +done < "$tmp"/filelist + +cd "$tmp" +#meld a b +#diff -ur a b +kdiff3 a b