Merge branch 'hv/cvsps-tests'
[git/git.git] / git-request-pull.sh
CommitLineData
ab421d2c
RA
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
3eb91bfc
SN
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.'
806f36d4 10SUBDIRECTORY_OK='Yes'
8f321a39 11OPTIONS_SPEC=
806f36d4 12. git-sh-setup
ff06c743 13. git-parse-remote
ab421d2c 14
653a31c1
MM
15GIT_PAGER=
16export GIT_PAGER
17
ff06c743 18base=$1
9969b649
JH
19url=$2
20head=${3-HEAD}
ab421d2c 21
ff06c743 22[ "$base" ] || usage
ab421d2c
RA
23[ "$url" ] || usage
24
5be60078
JH
25baserev=`git rev-parse --verify "$base"^0` &&
26headrev=`git rev-parse --verify "$head"^0` || exit
ab421d2c 27
ff06c743
SP
28merge_base=`git merge-base $baserev $headrev` ||
29die "fatal: No commits in common between $base and $head"
30
74982056 31branch=$(git ls-remote "$url" \
ff06c743
SP
32 | sed -n -e "/^$headrev refs.heads./{
33 s/^.* refs.heads.//
34 p
35 q
b5e960b1 36 }")
33016c49 37url=$(get_remote_url "$url")
ff06c743
SP
38if [ -z "$branch" ]; then
39 echo "warn: No branch of $url is at:" >&2
653a31c1 40 git log --max-count=1 --pretty='tformat:warn: %h: %s' $headrev >&2
ff06c743
SP
41 echo "warn: Are you sure you pushed $head there?" >&2
42 echo >&2
43 echo >&2
44 branch=..BRANCH.NOT.VERIFIED..
45 status=1
46fi
47
9969b649 48echo "The following changes since commit $baserev:"
ff06c743 49git shortlog --max-count=1 $baserev | sed -e 's/^\(.\)/ \1/'
ab421d2c 50
ff06c743 51echo "are available in the git repository at:"
9969b649 52echo
ff06c743 53echo " $url $branch"
9969b649 54echo
ab421d2c 55
ff06c743
SP
56git shortlog ^$baserev $headrev
57git diff -M --stat --summary $merge_base $headrev
58exit $status