aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-04-24 07:15:37 -0500
committerJunio C Hamano <gitster@pobox.com>2010-05-01 11:02:21 -0700
commit50ab6558bf688e15048e189bdaf9174b217e1748 (patch)
treed09eb13f6905d997371e38e5edd4e39b53757f06
parent30c56eaa2e7ab230a89a6fdc76682d2afaf5d4b1 (diff)
downloadgit-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-xcontrib/git-resurrect.sh1
-rwxr-xr-xgit-request-pull.sh1
-rw-r--r--t/t5150-request-pull.sh14
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