diff options
author | Junio C Hamano <junkio@cox.net> | 2005-08-16 13:01:39 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-08-17 12:11:36 -0700 |
commit | 86947d72d422aeaaeb4c1f41b49fc7a606c96321 (patch) | |
tree | 1408b005a47563551b054d76295c3cc91073d9d7 | |
parent | Add --symbolic flag to git-rev-parse. (diff) | |
download | tgif-86947d72d422aeaaeb4c1f41b49fc7a606c96321.tar.xz |
Pass options to underlying git-rev-list from show-branches.
This lets you say "git show-branches --max-count=30".
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-x | git-show-branches-script | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/git-show-branches-script b/git-show-branches-script index 263025c476..90018a9e88 100755 --- a/git-show-branches-script +++ b/git-show-branches-script @@ -5,15 +5,23 @@ . git-sh-setup-script || die "Not a git repository" +usage () { + die "usage: $0 <ref>..." +} + headref=`readlink $GIT_DIR/HEAD` -case "$#" in -0) - set x `cd $GIT_DIR/refs && - find heads -type f -print | - sed -e 's|heads/||' | - sort` + +case "$(git-rev-parse --no-revs)" in '') ;; *) usage ;; esac +revs=$(git-rev-parse --revs-only --symbolic --no-flags "$@") +flags=$(git-rev-parse --revs-only --flags "$@") +case "$revs" in +'') + revs=$(git-rev-parse --symbolic --all | sed -ne 's|^refs/heads/||p' | + sort) shift ;; esac +set x $revs +shift hh= in= for ref @@ -22,7 +30,7 @@ do */"$ref") H='*' ;; *) H='!' ;; esac - h=`git-rev-parse --verify "$ref^0"` || exit + h=`git-rev-parse --verify "$ref^0" 2>/dev/null` || continue l=`git-log-script --max-count=1 --pretty=oneline "$h" | sed -e 's/^[^ ]* //'` hh="$hh $h" @@ -32,7 +40,7 @@ done set x $hh shift -git-rev-list --pretty=oneline "$@" | +git-rev-list --pretty=oneline $flags $@ | while read v l do in='' |