diff options
author | Junio C Hamano <junkio@cox.net> | 2005-08-15 01:42:15 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-08-15 03:00:22 -0700 |
commit | 7c27558c6236225b07c5d5def76299d2b5fe7635 (patch) | |
tree | a82cb780921131e30bdc1d646f7ca6bc1b667db6 /git-show-branches-script | |
parent | [PATCH] Add some simple howtos, culled from the mailing list. (diff) | |
download | tgif-7c27558c6236225b07c5d5def76299d2b5fe7635.tar.xz |
Add git-show-branches-script
Often I find myself wanting to do quick branches check when I am
not in the windowing environment and cannot run gitk.
This stupid script shows commits leading to the heads of
interesting branches with indication which ones belong to which
branches, so that fork point is somewhat discernible without
using gitk.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-show-branches-script')
-rwxr-xr-x | git-show-branches-script | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/git-show-branches-script b/git-show-branches-script new file mode 100755 index 0000000000..263025c476 --- /dev/null +++ b/git-show-branches-script @@ -0,0 +1,53 @@ +#!/bin/sh +# +# Show refs and their recent commits. +# + +. git-sh-setup-script || die "Not a git repository" + +headref=`readlink $GIT_DIR/HEAD` +case "$#" in +0) + set x `cd $GIT_DIR/refs && + find heads -type f -print | + sed -e 's|heads/||' | + sort` + shift ;; +esac + +hh= in= +for ref +do + case "/$headref" in + */"$ref") H='*' ;; + *) H='!' ;; + esac + h=`git-rev-parse --verify "$ref^0"` || exit + l=`git-log-script --max-count=1 --pretty=oneline "$h" | + sed -e 's/^[^ ]* //'` + hh="$hh $h" + echo "$in$H [$ref] $l" + in="$in " +done +set x $hh +shift + +git-rev-list --pretty=oneline "$@" | +while read v l +do + in='' + for h + do + b=`git-merge-base $h $v` + case "$b" in + $v) in="$in+" ;; + *) in="$in " ;; + esac + done + + echo "$in $l" + case "$in" in + *' '*) ;; + *) break ;; + esac +done |