1#!/bin/sh -e 2# Copyright 2005, Ryan Anderson <ryan@michonline.com> 3# 4# This file is licensed under the GPL v2, or a later version 5# at the discretion of Linus Torvalds. 6 7USAGE='<commit> <url> [<head>]' 8LONG_USAGE='Summarizes the changes since <commit> to the standard output, 9and includes <url> in the message generated.' 10SUBDIRECTORY_OK='Yes' 11. git-sh-setup 12. git-parse-remote 13 14base=$1 15url=$2 16head=${3-HEAD} 17 18["$base"] || usage 19["$url"] || usage 20 21baserev=`git rev-parse --verify "$base"^0`&& 22headrev=`git rev-parse --verify "$head"^0`||exit 23 24merge_base=`git merge-base$baserev$headrev`|| 25die "fatal: No commits in common between$baseand$head" 26 27url=$(get_remote_url "$url") 28branch=$(git peek-remote"$url" \ 29|sed-n -e"/^$headrevrefs.heads./{ 30 s/^.* refs.heads.// 31 p 32 q 33 }") 34if[-z"$branch"];then 35echo"warn: No branch of$urlis at:">&2 36 git log --max-count=1--pretty='format:warn: %h: %s'$headrev>&2 37echo"warn: Are you sure you pushed$headthere?">&2 38echo>&2 39echo>&2 40 branch=..BRANCH.NOT.VERIFIED.. 41 status=1 42fi 43 44PAGER= 45export PAGER 46echo"The following changes since commit$baserev:" 47git shortlog --max-count=1$baserev|sed-e's/^\(.\)/ \1/' 48 49echo"are available in the git repository at:" 50echo 51echo"$url$branch" 52echo 53 54git shortlog ^$baserev $headrev 55git diff-M --stat --summary$merge_base $headrev 56exit$status