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='<start> <url> [<end>]' 8LONG_USAGE='Summarizes the changes between two commits to the standard output, 9and includes the given URL in the generated summary.' 10SUBDIRECTORY_OK='Yes' 11OPTIONS_SPEC= 12. git-sh-setup 13. git-parse-remote 14 15GIT_PAGER= 16export GIT_PAGER 17 18base=$1 19url=$2 20head=${3-HEAD} 21 22["$base"] || usage 23["$url"] || usage 24 25baserev=`git rev-parse --verify "$base"^0`&& 26headrev=`git rev-parse --verify "$head"^0`||exit 27 28merge_base=`git merge-base$baserev$headrev`|| 29die "fatal: No commits in common between$baseand$head" 30 31branch=$(git ls-remote"$url" \ 32|sed-n -e"/^$headrevrefs.heads./{ 33 s/^.* refs.heads.// 34 p 35 q 36 }") 37url=$(get_remote_url "$url") 38if[-z"$branch"];then 39echo"warn: No branch of$urlis at:">&2 40 git log --max-count=1--pretty='tformat:warn: %h: %s'$headrev>&2 41echo"warn: Are you sure you pushed$headthere?">&2 42echo>&2 43echo>&2 44 branch=..BRANCH.NOT.VERIFIED.. 45 status=1 46fi 47 48echo"The following changes since commit$baserev:" 49git shortlog --max-count=1$baserev|sed-e's/^\(.\)/ \1/' 50 51echo"are available in the git repository at:" 52echo 53echo"$url$branch" 54echo 55 56git shortlog ^$baserev $headrev 57git diff-M --stat --summary$merge_base $headrev 58exit$status