From 7c27558c6236225b07c5d5def76299d2b5fe7635 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 15 Aug 2005 01:42:15 -0700 Subject: 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 --- git-show-branches-script | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 git-show-branches-script (limited to 'git-show-branches-script') diff --git a/git-show-branches-script b/git-show-branches-script new file mode 100755 index 000000000..263025c47 --- /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 -- cgit v1.2.1