From 10eb00073f07e1c40a17327417aa39cc4cc9c254 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Fri, 29 Jan 2010 15:17:59 +0100 Subject: request-pull: avoid mentioning that the start point is a single commit Previously we ran shortlog on the start commit which always printed "(1)" after the start commit, which gives no information, but makes the output less easy to read. Instead of giving the author name of the commit, use the space for committer timestamp to help recipient judge the freshness of the offered branch more easily. Signed-off-by: Miklos Vajna Signed-off-by: Junio C Hamano --- git-request-pull.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'git-request-pull.sh') diff --git a/git-request-pull.sh b/git-request-pull.sh index 630ceddf03..8fd15f6df4 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -65,11 +65,11 @@ if [ -z "$branch" ]; then status=1 fi -echo "The following changes since commit $baserev:" -git shortlog --max-count=1 $baserev | sed -e 's/^\(.\)/ \1/' +git show -s --format='The following changes since commit %H: -echo "are available in the git repository at:" -echo + %s (%ci) + +are available in the git repository at:' $baserev echo " $url $branch" echo -- cgit v1.3 From 50ab6558bf688e15048e189bdaf9174b217e1748 Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Sat, 24 Apr 2010 07:15:37 -0500 Subject: request-pull: protect against OPTIONS_KEEPDASHDASH from environment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Like most git commands, request-pull supports a -- delimiter to allow callers to pass arguments that would otherwise be treated as an option afterwards. The internal OPTIONS_KEEPDASHDASH variable is passed empty to git-sh-setup to indicate that request-pull itself does not care about the position of the -- delimiter. But if the user has that variable in her environment, request-pull will see the “--” and fail. Empty it explicitly to guard against this. While at it, make the corresponding fix to git-resurrect, too (all other scripts in git.git already protect themselves). Acked-by: Thomas Rast Acked-by: Miklos Vajna Signed-off-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- contrib/git-resurrect.sh | 1 + git-request-pull.sh | 1 + t/t5150-request-pull.sh | 14 ++++++++++++++ 3 files changed, 16 insertions(+) (limited to 'git-request-pull.sh') diff --git a/contrib/git-resurrect.sh b/contrib/git-resurrect.sh index c364dda696..a4ed4c3c62 100755 --- a/contrib/git-resurrect.sh +++ b/contrib/git-resurrect.sh @@ -9,6 +9,7 @@ other/Merge into (respectively) commit subjects, which is rather slow but allows you to resurrect other people's topic branches." +OPTIONS_KEEPDASHDASH= OPTIONS_SPEC="\ git resurrect $USAGE -- diff --git a/git-request-pull.sh b/git-request-pull.sh index 630ceddf03..b0a03111cc 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -8,6 +8,7 @@ USAGE=' []' 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_KEEPDASHDASH= OPTIONS_SPEC='git request-pull [options] start url [end] -- p show patch text as well diff --git a/t/t5150-request-pull.sh b/t/t5150-request-pull.sh index e012a364e1..4c7f48a807 100644 --- a/t/t5150-request-pull.sh +++ b/t/t5150-request-pull.sh @@ -211,4 +211,18 @@ test_expect_success 'pull request format' ' ' +test_expect_success 'request-pull ignores OPTIONS_KEEPDASHDASH poison' ' + + ( + cd local && + OPTIONS_KEEPDASHDASH=Yes && + export OPTIONS_KEEPDASHDASH && + git checkout initial && + git merge --ff-only master && + git push origin master:for-upstream && + git request-pull -- initial "$downstream_url" >../request + ) + +' + test_done -- cgit v1.3 From 53dfac44c93d5861f0ab60fc38e1a2d3b67e8c62 Mon Sep 17 00:00:00 2001 From: Brandon Casey Date: Tue, 1 Jun 2010 19:13:41 -0500 Subject: git-request-pull.sh: remove -e switch to shell interpreter which breaks ksh The -e option causes the shell to exit immediately when a command exits with a non-zero exit status. This does not seem to cause a problem for Bash, but it does cause a problem for the Korn shell, like Solaris's xpg4/sh, whose unset utility returns non-zero if it is passed a variable name which was not previously set. When using xpg4/sh, git-request-pull exits while sourcing git-sh-setup since git-sh-setup tries to unset the CDPATH environment variable. When git-request-pull was originally written, it did not do any error checking and it used this shell feature to exit when an error occurred. This script now performs proper error checking and provides useful error messages, so this -e option appears to be merely a historical artifact and can be removed. Kudos to Jonathan Nieder for introducing t5150 which exercises the request-pull code path. Suggested-by: Brandon Casey Signed-off-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- git-request-pull.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'git-request-pull.sh') diff --git a/git-request-pull.sh b/git-request-pull.sh index 74238b0313..6fdea397dd 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/sh # Copyright 2005, Ryan Anderson # # This file is licensed under the GPL v2, or a later version @@ -70,10 +70,10 @@ git show -s --format='The following changes since commit %H: %s (%ci) -are available in the git repository at:' $baserev -echo " $url $branch" -echo +are available in the git repository at:' $baserev && +echo " $url $branch" && +echo && -git shortlog ^$baserev $headrev -git diff -M --stat --summary $patch $merge_base..$headrev +git shortlog ^$baserev $headrev && +git diff -M --stat --summary $patch $merge_base..$headrev || exit exit $status -- cgit v1.3 From 1a92777504afc09e071d7d828e084e6a4dadfce2 Mon Sep 17 00:00:00 2001 From: Uwe Kleine-König Date: Tue, 1 Mar 2011 10:21:37 +0100 Subject: git-request-pull: open-code the only invocation of get_remote_url MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So sh:get_remote_url can go now and git-request-pull doesn't need to source git-parse-remote. anymore. Signed-off-by: Uwe Kleine-König Signed-off-by: Junio C Hamano --- git-parse-remote.sh | 4 ---- git-request-pull.sh | 3 +-- 2 files changed, 1 insertion(+), 6 deletions(-) (limited to 'git-request-pull.sh') diff --git a/git-parse-remote.sh b/git-parse-remote.sh index 0ab1192f81..e7013f7ba7 100644 --- a/git-parse-remote.sh +++ b/git-parse-remote.sh @@ -4,10 +4,6 @@ # this would fail in that case and would issue an error message. GIT_DIR=$(git rev-parse -q --git-dir) || :; -get_remote_url () { - git ls-remote --get-url "$1" -} - get_default_remote () { curr_branch=$(git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||') origin=$(git config --get "branch.$curr_branch.remote") diff --git a/git-request-pull.sh b/git-request-pull.sh index 6fdea397dd..fc080cc5e4 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -15,7 +15,6 @@ p show patch text as well ' . git-sh-setup -. git-parse-remote GIT_PAGER= export GIT_PAGER @@ -55,7 +54,7 @@ branch=$(git ls-remote "$url" \ p q }") -url=$(get_remote_url "$url") +url=$(git ls-remote --get-url "$url") if [ -z "$branch" ]; then echo "warn: No branch of $url is at:" >&2 git log --max-count=1 --pretty='tformat:warn: %h: %s' $headrev >&2 -- cgit v1.3