chiark
/
gitweb
/
~ian
/
topgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tg-summary: accept -i/-w
[topgit.git]
/
tg-summary.sh
diff --git
a/tg-summary.sh
b/tg-summary.sh
index 612bd27443779266de3385dfce6b2812be81f85a..1c99e2225c61a2a4c9a07ec6bd64ee82558ddda7 100644
(file)
--- a/
tg-summary.sh
+++ b/
tg-summary.sh
@@
-7,13
+7,16
@@
terse=
graphviz=
sort=
deps=
graphviz=
sort=
deps=
-
+head_from=
## Parse options
while [ -n "$1" ]; do
arg="$1"; shift
case "$arg" in
## 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)
-t)
terse=1;;
--graphviz)
@@
-23,7
+26,7
@@
while [ -n "$1" ]; do
--deps)
deps=1;;
*)
--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
exit 1;;
esac
done
@@
-68,8
+71,11
@@
process_branch()
current=' '
[ "$name" != "$curname" ] || current='>'
current=' '
[ "$name" != "$curname" ] || current='>'
+ from=$head_from
+ [ "$name" = "$curname" ] ||
+ from=
nonempty=' '
nonempty=' '
- ! branch_empty "$name" || nonempty='0'
+ ! branch_empty "$name"
$from
|| nonempty='0'
remote=' '
[ -z "$base_remote" ] || remote='l'
! has_remote "$name" || remote='r'
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
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)"
else
# No commits yet
subject="(No commits)"
@@
-99,7
+105,7
@@
process_branch()
}
if [ -n "$deps" ]; then
}
if [ -n "$deps" ]; then
- list_deps
+ list_deps
$head_from
exit 0
fi
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
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
dep_is_tgish=true
ref_exists "refs/top-bases/$dep" ||
dep_is_tgish=false