From: Paolo Bonzini <bonzini@gnu.org>
To: git@vger.kernel.org
Cc: Paolo Bonzini <pbonzini@redhat.com>
Subject: [PATCH 3/3] request-pull: find matching tag or branch name on remote side
Date: Mon, 16 Feb 2015 19:16:08 +0100 [thread overview]
Message-ID: <1424110568-29479-4-git-send-email-bonzini@gnu.org> (raw)
In-Reply-To: <1424110568-29479-1-git-send-email-bonzini@gnu.org>
From: Paolo Bonzini <pbonzini@redhat.com>
If the third argument is not passed to "git request-pull", the
find_matching_ref script will look for HEAD in the remote side
which does not work. Instead, default to the ref names found
via "git show-ref" or "git tag".
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
git-request-pull.sh | 14 ++++++++++----
t/t5150-request-pull.sh | 2 +-
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/git-request-pull.sh b/git-request-pull.sh
index a507006..fcbe383 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -54,8 +54,6 @@ fi
local=${3%:*}
local=${local:-HEAD}
remote=${3#*:}
-pretty_remote=${remote#refs/}
-pretty_remote=${pretty_remote#heads/}
head=$(git symbolic-ref -q "$local")
head=${head:-$(git show-ref --heads --tags "$local" | cut -d' ' -f2)}
head=${head:-$(git tag --points-at "$local" | sed 's,^,refs/tags/,')}
@@ -64,6 +62,14 @@ head=${head:-$(git rev-parse --quiet --verify "$local")}
# None of the above? Bad.
test -z "$head" && die "fatal: Not a valid revision: $local"
+#
+# If $3 was not there, the remote name should be the same
+# as the locally detected name
+#
+remote=${remote:-$head}
+pretty_remote=${remote#refs/}
+pretty_remote=${pretty_remote#heads/}
+
# This also verifies that the resulting head is unique:
# "git show-ref" could have shown multiple matching refs..
headrev=$(git rev-parse --verify --quiet "$head"^0)
@@ -111,12 +117,12 @@ find_matching_ref='
}
'
-ref=$(git ls-remote "$url" | @@PERL@@ -e "$find_matching_ref" "${remote:-HEAD}" "$headrev")
+ref=$(git ls-remote "$url" | @@PERL@@ -e "$find_matching_ref" "$remote" "$headrev")
if test -z "$ref"
then
echo "warn: No match for commit $headrev found at $url" >&2
- echo "warn: Are you sure you pushed '${remote:-HEAD}' there?" >&2
+ echo "warn: Are you sure you pushed '$remote' there?" >&2
status=1
fi
diff --git a/t/t5150-request-pull.sh b/t/t5150-request-pull.sh
index 8b19279..11ba8ff 100755
--- a/t/t5150-request-pull.sh
+++ b/t/t5150-request-pull.sh
@@ -178,7 +178,7 @@ test_expect_success 'request asks HEAD to be pulled' '
read repository &&
read branch
} <digest &&
- test -z "$branch"
+ test "$branch" = "tags/full"
'
--
2.3.0
next prev parent reply other threads:[~2015-02-16 18:16 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-16 18:16 [PATCH 0/3] request-pull: do something if $3 is passed Paolo Bonzini
2015-02-16 18:16 ` [PATCH 1/3] request-pull: fix expected format in tests Paolo Bonzini
2015-02-16 18:16 ` [PATCH 2/3] request-pull: use "git tag --points-at" to detect local tags Paolo Bonzini
2015-02-16 18:16 ` Paolo Bonzini [this message]
2015-02-16 19:47 ` [PATCH 0/3] request-pull: do something if $3 is passed Junio C Hamano
2015-02-17 10:12 ` Paolo Bonzini
2015-02-17 19:57 ` Junio C Hamano
2015-02-17 20:34 ` Paolo Bonzini
2015-02-17 20:42 ` Linus Torvalds
2015-02-17 20:53 ` Paolo Bonzini
2015-02-17 21:04 ` Linus Torvalds
2015-02-17 21:10 ` Paolo Bonzini
2015-02-17 21:18 ` Linus Torvalds
2015-02-18 7:11 ` Junio C Hamano
2015-02-17 21:03 ` Junio C Hamano
2015-02-17 21:08 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1424110568-29479-4-git-send-email-bonzini@gnu.org \
--to=bonzini@gnu.org \
--cc=git@vger.kernel.org \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).