4 git log --pretty=raw "$@" > "$t"
11 eval "reverts_in_$commit=\"\$reverts_in_$commit $reverted\""
12 eval "reverts_$reverted=\"\$reverts_$reverted $commit\""
13 allreverted="$allreverted $reverted"
14 #echo >&2 "Found: $commit reverts $reverted"
17 # in the tree of reverters, look for any leaves of even depth
21 eval "echo \$reverts_$1"
24 whatreverts_inverted()
26 local status reverter printme
29 for reverter in `reverters "$1"`; do
30 if ! whatreverts "$reverter"; then
45 for reverter in `reverters "$1"`; do
46 if ! whatreverts_inverted "$reverter"; then
53 # pass 1: find which commit reverts which
54 while IFS= read -r L; do
59 " This reverts commit "*)
60 reverted=${L# This reverts commit }
61 reverted=${reverted%.}
62 reverts "$commit" "$reverted"
67 # pass 2: for all reverted commits, find their status and their latest revert
68 for commit in $allreverted; do
69 if eval "[ -n \"\$seen_$commit\" ]"; then
73 if eval "[ -n \"\$reverts_in_$commit\" ]"; then
76 if revertedby=`whatreverts "$commit" | grep .`; then
77 echo "$commit got reverted by $revertedby:"
78 git log -1 $revertedby