chiark / gitweb /
cat_file: take -i/-w parameters
[topgit.git] / tg-files.sh
1 #!/bin/sh
2 # TopGit - A different patch queue manager
3 # (c) Petr Baudis <pasky@suse.cz>  2008
4 # GPLv2
5
6 name=
7 topic=
8
9
10 ## Parse options
11
12 while [ -n "$1" ]; do
13         arg="$1"; shift
14         case "$arg" in
15         -i)
16                 [ -z "$topic" ] || die "-i and -w are mutually exclusive"
17                 topic=-i;;
18         -w)
19                 [ -z "$topic" ] || die "-i and -w are mutually exclusive"
20                 topic=-w;;
21         -*)
22                 echo "Usage: tg [...] files [-i | -w] [NAME]" >&2
23                 exit 1;;
24         *)
25                 [ -z "$name" ] || die "name already specified ($name)"
26                 name="$arg";;
27         esac
28 done
29
30
31 [ -n "$name" -a -n "$topic" ] &&
32         die "-i/-w are mutually exclusive with NAME"
33
34 [ -n "$name" ] || name="$(git symbolic-ref HEAD | sed 's#^refs/\(heads\|top-bases\)/##')"
35 base_rev="$(git rev-parse --short --verify "refs/top-bases/$name" 2>/dev/null)" ||
36         die "not a TopGit-controlled branch"
37
38 b_tree=$(pretty_tree "$name" -b)
39 t_tree=$(pretty_tree "$name" $topic)
40
41 git diff-tree --name-only -r $b_tree $t_tree
42
43 # vim:noet