#!/bin/sh # # Show refs and their recent commits. # . git-sh-setup-script || die "Not a git repository" usage () { die "usage: $0 ..." } headref=`readlink $GIT_DIR/HEAD` 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 do case "/$headref" in */"$ref") H='*' ;; *) H='!' ;; esac 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" echo "$in$H [$ref] $l" in="$in " done set x $hh shift git-rev-list --pretty=oneline $flags $@ | 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