order. In more complex scenarios, a text graph view would be
much more useful, but that is not yet implemented.
+ The --deps option outputs dependency informations between
+ branches in a machine-readable format. Feed this to "tsort"
+ to get the output from --sort.
+
TODO: Speed up by an order of magnitude
TODO: Text graph view
terse=
graphviz=
sort=
+deps=
## Parse options
graphviz=1;;
--sort)
sort=1;;
+ --deps)
+ deps=1;;
*)
- echo "Usage: tg [...] summary [-t | --sort | --graphviz]" >&2
+ echo "Usage: tg [...] summary [-t | --sort | --deps | --graphviz]" >&2
exit 1;;
esac
done
curname="$(git symbolic-ref HEAD | sed 's#^refs/\(heads\|top-bases\)/##')"
-! [ -n "$terse" -a -n "$graphviz" ] ||
- die "-t and --graphviz options are mutual exclusive"
-
-! [ -n "$sort" -a -n "$graphviz" ] ||
- die "--sort and --graphviz options are mutual exclusive"
-
-! [ -n "$sort" -a -n "$terse" ] ||
- die "-t and --sort options are mutual exclusive"
+[ "$terse$graphviz$sort$deps" = "" ] ||
+ [ "$terse$graphviz$sort$deps" = "1" ] ||
+ die "mutually exclusive options given"
if [ -n "$graphviz" ]; then
cat <<EOT
echo "$name"
continue
fi
- if [ -n "$graphviz" ] || [ -n "$sort" ]; then
+ if [ -n "$graphviz$sort$deps" ]; then
git cat-file blob "$name:.topdeps" | while read dep; do
dep_is_tgish=true
ref_exists "refs/top-bases/$dep" ||
if ! "$dep_is_tgish" || ! branch_annihilated $dep; then
if [ -n "$graphviz" ]; then
echo "\"$name\" -> \"$dep\";"
+ elif [ -n "$deps" ]; then
+ echo "$name $dep"
else
echo "$name $dep" >&4
fi