blob: f1f53081d80e2ef4c5e394468ff2d0aea4b18a96 [file] [log] [blame]
#!/bin/bash
set -e
# stg-whatchanged - show a metadiff for the patch being modified,
# especially when resolving a merge.
# Copyright (c) 2006-2007 Yann Dirson <ydirson@altern.org>
# Subject to the GNU GPL, version 2.
# FIXME:
# - should only exclude hunk headers differing only in line offsets
# - diff coloring should show changes in context lines differently than
# changes in contents
# - filter on ^index lines is a bit wide
# - we should be able to ask diff to force a new hunk on "^@@ " to better
# handle them
# - we should always show the hunk header for any changes within a hunk
# default to unified diff
if [ "$#" = 0 ]; then
set -- -u
fi
# Merges via "push" leave top=bottom so we must look at old patch
# in this case (unlike, eg., "pick --fold")
patchdir="$(git rev-parse --git-dir)/patches/$(stg branch)/patches/$(stg top)"
case $(stg log | head -n1) in
*push\(c\)*) former="//top.old" ;;
*) former="//top" ;;
esac
stg-mdiff -o "$*" \
$former //bottom..