Subject: Re* [RFC PATCH 2/1] Make request-pull able to take a refspec of form local:remote

From: Junio C Hamano <[email-masked]>
Date: Wed, 29 Jan 2014 15:34:32 -0800

Junio C Hamano <[email-masked]> writes:

> So there are two remaining items, I think.
>
>  - After creating a tags/for-linus signed tag and pushing it to
>    tags/for-linus, asking request-pull to request that tag to be
>    pulled seems to lose the tag message from the output.
>
>  - Docs.
>
> [Footnote]
>
> *1* Not that it is always acceptable to break the existing users as
>     long as they are clueful ones and they are given an escape hatch.
>     But this time I know I won't be in the middle of firestorm like
>     the one we had immediately after 1.6.0, as long as I keep the
>     URL of the message I am responding to in the list archive ;-)

I am not yet doing the docs, but here is a minimal (and I think is
the most sensible) fix to the "If I asked a tag to be pulled, I used
to get the message from the tag in the output---the updated code no
longer does so" problem.

With this fix, the updates to t5150 I queued on top of the two
patches can lose a "test_expect_failure".

I would not be surprised if there are other regressions, though
[*1*].  I am worried about regressions when the user explicitly asks
a ref to be pulled---e.g the command refuses to produce output and
instead fails (perhaps because the ambiguity check is overly
stricter than it should be), or the command produces output that is
different from what we used to produce (this patch is a fix to the
problem in that latter category, but there may be other differences
the existing tests are not covering).

[Footnote]

*1* No, I do not count "I used to be able to ask 'master' (or
implicitly 'HEAD' that I happen to be sitting on) to be pulled and
rely on that the command figures out that I have that commit on
'for-linus' in my publish repository, but that feature was removed"
as a regression.  Removing that cleverness is the point of this
series.

-- >8 --
Subject: [PATCH] request-pull: pick up tag message as before

The previous two steps were meant to stop promoting the explicit
refname the user gave to the command to a different ref that points
at it.  Most notably, we no longer substitute a branch name the user
used with a name of the tqag that points at the commit at the tip of
the branch.

However, they also lost the code that included the message in a
tag when the user _did_ ask the tag to be pulled.  Resurrect it.

Signed-off-by: Junio C Hamano <[email-masked]>
---
 git-request-pull.sh | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/git-request-pull.sh b/git-request-pull.sh
index c8ab0e9..93b4135 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -132,6 +132,14 @@ for you to fetch changes up to %H:
 
 ----------------------------------------------------------------' $headrev &&
 
+if test $(git cat-file -t "$head") = tag
+then
+	git cat-file tag "$head" |
+	sed -n -e '1,/^$/d' -e '/^-----BEGIN PGP /q' -e p
+	echo
+	echo "----------------------------------------------------------------"
+fi &&
+
 if test -n "$branch_name"
 then
 	echo "(from the branch description for $branch_name local branch)"
-- 
1.9-rc1-183-g614c158