Commit | Line | Data |
---|---|---|
a3e45643 YD |
1 | #!/bin/bash |
2 | set -e | |
3 | ||
4 | # stg-whatchanged - show a metadiff for the patch being modified, | |
5 | # especially when resolving a merge. | |
6 | ||
7 | # Copyright (c) 2006-2007 Yann Dirson <ydirson@altern.org> | |
8 | # Subject to the GNU GPL, version 2. | |
9 | ||
10 | # FIXME: | |
11 | # - should only exclude hunk headers differing only in line offsets | |
12 | # - diff coloring should show changes in context lines differently than | |
13 | # changes in contents | |
14 | # - filter on ^index lines is a bit wide | |
15 | # - we should be able to ask diff to force a new hunk on "^@@ " to better | |
16 | # handle them | |
17 | # - we should always show the hunk header for any changes within a hunk | |
18 | ||
19 | # default to unified diff | |
20 | if [ "$#" = 0 ]; then | |
21 | set -- -u | |
22 | fi | |
23 | ||
24 | # Merges via "push" leave top=bottom so we must look at old patch | |
25 | # in this case (unlike, eg., "pick --fold") | |
04b44217 | 26 | patchdir="$(git rev-parse --git-dir)/patches/$(stg branch)/patches/$(stg top)" |
af27af8e | 27 | case $(stg log | head -n1) in |
f4fec498 YD |
28 | *push\(c\)*) former="//top.old" ;; |
29 | *) former="//top" ;; | |
af27af8e | 30 | esac |
a3e45643 | 31 | |
f4fec498 YD |
32 | stg-mdiff -o "$*" \ |
33 | $former //bottom.. |