* [StGIT PATCH] stg-gitk: allow passing args to gitk; add --help.
@ 2007-11-22 21:23 Yann Dirson
0 siblings, 0 replies; only message in thread
From: Yann Dirson @ 2007-11-22 21:23 UTC (permalink / raw)
To: Catalin Marinas; +Cc: git
Quite handy to further limit the commits to be shown.
---
contrib/stg-gitk | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/contrib/stg-gitk b/contrib/stg-gitk
index 6ddcfb1..cb264e5 100755
--- a/contrib/stg-gitk
+++ b/contrib/stg-gitk
@@ -12,25 +12,31 @@ set -e
# Copyright (c) 2007 Yann Dirson <ydirson@altern.org>
# Subject to the GNU GPL, version 2.
+helptext="Usage: $(basename $0) [--refs] [<branches>|--all] [-- <gitk args>]"
+
usage()
{
- echo "Usage: $(basename $0) [<branches>|--all]"
+ echo >&2 "$helptext"
exit 1
}
allbranches=0
refsonly=0
+branches=''
while [ "$#" -gt 0 ]; do
case "$1" in
--refs) refsonly=1 ;;
--all) allbranches=1 ;;
+ --help) echo "$helptext"; exit 0 ;;
+ --) shift; break ;;
--*) usage ;;
- *) break ;;
+ *) branches="$branches $1" ;;
esac
shift
done
+# Now any remaining stuff in $@ are additional options for gitk
-if [ $allbranches = 1 ] && [ "$#" -gt 0 ]; then
+if [ $allbranches = 1 ] && [ "$branches" != "" ]; then
usage
fi
@@ -41,11 +47,17 @@ refdirs=''
if [ $allbranches = 1 ]; then
refdirs="$GIT_DIR/refs"
else
- if [ "$#" = 0 ]; then
- set -- "$(stg branch)"
+ # default to current branch
+ if [ "$branches" == "" ]; then
+ branches="$(stg branch)"
+ fi
+ if [ "$branches" == "" ]; then
+ echo >&2 "ERROR: cannot find current branch."
+ exit 1
fi
- for b in "$@"; do
+ # expand patches for each named branch
+ for b in $branches; do
if [ -e "$GIT_DIR/refs/patches/$b" ]; then
# StGIT branch: show all patches
refdirs="$refdirs $GIT_DIR/refs/heads/$b $GIT_DIR/refs/patches/$b"
@@ -73,11 +85,11 @@ elif grep -q -- --argscmd $(which gitk); then
# This gitk supports --argscmd.
# Let's use a hack to pass --all, which was consumed during command-line parsing
if [ $allbranches = 1 ]; then
- gitk --argscmd="$0 --refs --all"
+ gitk --argscmd="$0 --refs --all" "$@"
else
- gitk --argscmd="$0 --refs $*"
+ gitk --argscmd="$0 --refs $branches" "$@"
fi
else
# This gitk does not support --argscmd, just compute refs onces
- gitk $(printrefs)
+ gitk $(printrefs) "$@"
fi
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2007-11-22 21:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-22 21:23 [StGIT PATCH] stg-gitk: allow passing args to gitk; add --help Yann Dirson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox