diff options
Diffstat (limited to 'git-request-pull.sh')
-rwxr-xr-x | git-request-pull.sh | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/git-request-pull.sh b/git-request-pull.sh index a992430679..630ceddf03 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -4,13 +4,37 @@ # This file is licensed under the GPL v2, or a later version # at the discretion of Linus Torvalds. -USAGE='<commit> <url> [<head>]' -LONG_USAGE='Summarizes the changes since <commit> to the standard output, -and includes <url> in the message generated.' +USAGE='<start> <url> [<end>]' +LONG_USAGE='Summarizes the changes between two commits to the standard output, +and includes the given URL in the generated summary.' SUBDIRECTORY_OK='Yes' +OPTIONS_SPEC='git request-pull [options] start url [end] +-- +p show patch text as well +' + . git-sh-setup . git-parse-remote +GIT_PAGER= +export GIT_PAGER + +patch= +while case "$#" in 0) break ;; esac +do + case "$1" in + -p) + patch=-p ;; + --) + shift; break ;; + -*) + usage ;; + *) + break ;; + esac + shift +done + base=$1 url=$2 head=${3-HEAD} @@ -24,16 +48,16 @@ headrev=`git rev-parse --verify "$head"^0` || exit merge_base=`git merge-base $baserev $headrev` || die "fatal: No commits in common between $base and $head" -url="`get_remote_url "$url"`" -branch=`git peek-remote "$url" \ +branch=$(git ls-remote "$url" \ | sed -n -e "/^$headrev refs.heads./{ s/^.* refs.heads.// p q - }"` + }") +url=$(get_remote_url "$url") if [ -z "$branch" ]; then echo "warn: No branch of $url is at:" >&2 - git log --max-count=1 --pretty='format:warn: %h: %s' $headrev >&2 + git log --max-count=1 --pretty='tformat:warn: %h: %s' $headrev >&2 echo "warn: Are you sure you pushed $head there?" >&2 echo >&2 echo >&2 @@ -41,8 +65,6 @@ if [ -z "$branch" ]; then status=1 fi -PAGER= -export PAGER echo "The following changes since commit $baserev:" git shortlog --max-count=1 $baserev | sed -e 's/^\(.\)/ \1/' @@ -52,5 +74,5 @@ echo " $url $branch" echo git shortlog ^$baserev $headrev -git diff -M --stat --summary $merge_base $headrev +git diff -M --stat --summary $patch $merge_base..$headrev exit $status |