It obviously never worked, refs don't start with '/'. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- git-request-pull.sh | 10 ++++++++-- t/t5150-request-pull.sh | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/git-request-pull.sh b/git-request-pull.sh index 3e510ca..c970244 100755 --- a/git-request-pull.sh +++ b/git-request-pull.sh @@ -38,6 +38,11 @@ done base=$1 url=$2 head=${3-HEAD} status=0 branch_name= headref=$(git rev-parse -q --verify --symbolic-full-name "$head") +if test "$headref" = "HEAD" +then + headref= +fi + branch_name=${headref#refs/heads/} if test "z$branch_name" = "z$headref" || ! git config "branch.$branch_name.description" >/dev/null @@ -90,8 +95,9 @@ find_matching_ref=' $tagged = $found; last; } - if ($ref =~ m|/\Q$ARGV[0]\E$|) { + if ($ref eq $ARGV[0]) { $exact = $found; + last; } } if ($tagged) { @@ -103,7 +109,7 @@ find_matching_ref=' } ' -ref=$(git ls-remote "$url" | perl -e "$find_matching_ref" "$head" "$headrev" "$tag_name") +ref=$(git ls-remote "$url" | perl -e "$find_matching_ref" "$headref" "$headrev" "$tag_name") url=$(git ls-remote --get-url "$url") diff --git a/t/t5150-request-pull.sh b/t/t5150-request-pull.sh index a9ee96a..73f0369 100755 --- a/t/t5150-request-pull.sh +++ b/t/t5150-request-pull.sh @@ -281,4 +281,25 @@ test_expect_success 'pull request with branch description from rev' ' grep "Branch for upstream" request ' +test_expect_success 'pull request with exact match' ' + test_when_finished "(cd local && git checkout - && git branch -D for-upstream)" && + rm -fr downstream.git && + git init --bare downstream.git && + ( + cd local && + git checkout -b for-upstream master && + git push origin master:for-upstream master:zeebra && + git request-pull initial origin for-upstream >../request + ) && + cat request && + sed -nf read-request.sed <request >digest && + cat digest && + { + read task && + read repository && + read branch + } <digest && + test "$branch" = for-upstream +' + test_done -- 1.8.4-fc -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html