This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

tg-summary: accept -i/-w

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
  • Loading branch information...
bertwesarg committed Oct 7, 2010
1 parent f6a3b39 commit 466ad37954e4735f2f5a38bc47a78d9088b42c00
Showing with 23 additions and 6 deletions.
  1. +4 −0 README
  2. +4 −0 contrib/tg-completion.bash
  3. +15 −6 tg-summary.sh
View
4 README
@@ -370,6 +370,10 @@ tg summary
branches in a machine-readable format. Feed this to "tsort"
to get the output from --sort.
+ Options:
+ -i Use TopGit meta data from the index instead of branch
+ -w Use TopGit meta data from the working tree instead of branch
+
TODO: Speed up by an order of magnitude
TODO: Text graph view
@@ -426,7 +426,11 @@ _tg_summary ()
*)
__tgcomp "
--graphviz
+ --sort
+ --deps
-t
+ -i
+ -w
"
esac
}
View
@@ -7,13 +7,16 @@ terse=
graphviz=
sort=
deps=
-
+head_from=
## Parse options
while [ -n "$1" ]; do
arg="$1"; shift
case "$arg" in
+ -i|-w)
+ [ -z "$head_from" ] || die "-i and -w are mutually exclusive"
+ head_from="$arg";;
-t)
terse=1;;
--graphviz)
@@ -23,7 +26,7 @@ while [ -n "$1" ]; do
--deps)
deps=1;;
*)
- echo "Usage: tg [...] summary [-t | --sort | --deps | --graphviz]" >&2
+ echo "Usage: tg [...] summary [-t | --sort | --deps | --graphviz] [-i | -w]" >&2
exit 1;;
esac
done
@@ -68,8 +71,11 @@ process_branch()
current=' '
[ "$name" != "$curname" ] || current='>'
+ from=$head_from
+ [ "$name" = "$curname" ] ||
+ from=
nonempty=' '
- ! branch_empty "$name" || nonempty='0'
+ ! branch_empty "$name" $from || nonempty='0'
remote=' '
[ -z "$base_remote" ] || remote='l'
! has_remote "$name" || remote='r'
@@ -88,7 +94,7 @@ process_branch()
branch_contains "$name" "refs/top-bases/$name" || base_update='B'
if [ "$(git rev-parse "$name")" != "$rev" ]; then
- subject="$(git cat-file blob "$name:.topmsg" | sed -n 's/^Subject: //p')"
+ subject="$(cat_file "$name:.topmsg" $from | sed -n 's/^Subject: //p')"
else
# No commits yet
subject="(No commits)"
@@ -99,7 +105,7 @@ process_branch()
}
if [ -n "$deps" ]; then
- list_deps
+ list_deps $head_from
exit 0
fi
@@ -113,7 +119,10 @@ git for-each-ref refs/top-bases |
if [ -n "$terse" ]; then
echo "$name"
elif [ -n "$graphviz$sort" ]; then
- git cat-file blob "$name:.topdeps" | while read dep; do
+ from=$head_from
+ [ "$name" = "$curname" ] ||
+ from=
+ cat_file "$name:.topdeps" $from | while read dep; do
dep_is_tgish=true
ref_exists "refs/top-bases/$dep" ||
dep_is_tgish=false

0 comments on commit 466ad37

Please sign in to comment.