diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2010-04-24 07:15:37 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-05-01 11:02:21 -0700 |
commit | 50ab6558bf688e15048e189bdaf9174b217e1748 (patch) | |
tree | d09eb13f6905d997371e38e5edd4e39b53757f06 | |
parent | 30c56eaa2e7ab230a89a6fdc76682d2afaf5d4b1 (diff) | |
download | git-50ab6558bf688e15048e189bdaf9174b217e1748.tar.gz git-50ab6558bf688e15048e189bdaf9174b217e1748.tar.xz |
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 <trast@student.ethz.ch>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | contrib/git-resurrect.sh | 1 | ||||
-rwxr-xr-x | git-request-pull.sh | 1 | ||||
-rw-r--r-- | t/t5150-request-pull.sh | 14 |
3 files changed, 16 insertions, 0 deletions
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 <other> into <name> (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='<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_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 |