From: Jonathan Nieder Date: Sat, 24 Apr 2010 12:15:37 +0000 (-0500) Subject: request-pull: protect against OPTIONS_KEEPDASHDASH from environment X-Git-Tag: v1.7.2-rc0~114^2~2^2~1 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=50ab6558bf688e15048e189bdaf9174b217e1748;p=git.git request-pull: protect against OPTIONS_KEEPDASHDASH from environment 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 --- diff --git a/contrib/git-resurrect.sh b/contrib/git-resurrect.sh index c364dda69..a4ed4c3c6 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 630ceddf0..b0a03111c 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 e012a364e..4c7f48a80 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