git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 25, 2014, 21:44 UTC
Message-ID
<xmqqob1u6f5d.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CA+55aFyWM+VDa4mdqseNy3tSnp23x=2sPtHf5KpxsfROeHbVGw@mail.gmail.com>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 16 quoted lines
> Thinking some more about the tag_name issue, I realize that the other
> patch ("Make request-pull able to take a refspec of form
> local:remote") broke another thing.
>
> The first patch pretty-printed the local branch-name, removing "refs/"
> and possibly "heads/" from the local refname. So for a branch, it
> would ask people to just pull from the branch-name, and for a tag it
> would ask people to pull from "tags/name", which is good policy. So if
> you had a tag called "for-linus", it would say so (using
> "tags/for-linus").
>
> But the local:remote syntax thing ends up breaking that nice feature.
> The old find_matching_refs would actually cause us to show the "tags"
> part if it existed on the remote, but that had become pointless and
> counter-productive with the first patch. But with the second patch,
> maybe we should reinstate that logic..
Sorry for back-burnering this topic so long.

I think the following does what you suggested in the message I am responding to.

Now, hopefully the only thing we need is a documentation update and the series should be ready to go.

-- >8 --
Subject: request-pull: resurrect "pretty refname" feature

When asking to fetch/pull a branch whose name is B or a tag whose name is T, we used to show the command to run as:

	git pull $URL B
        git pull $URL tags/T
	
even when B and T were spelled in a more qualified way in order to
disambiguate, e.g. heads/B or refs/tags/T, but the recent update
lost this feature.  Resurrect it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 git-request-pull.sh     | 4 +++-
 t/t5150-request-pull.sh | 8 +++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/git-request-pull.sh b/git-request-pull.sh
index 93b4135..b67513a 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -53,6 +53,8 @@ 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 rev-parse --quiet --verify "$local")}
@@ -124,7 +126,7 @@ git show -s --format='The following changes since commit %H:
 
 are available in the git repository at:
 ' $merge_base &&
-echo "  $url $remote" &&
+echo "  $url $pretty_remote" &&
 git show -s --format='
 for you to fetch changes up to %H:
 
diff --git a/t/t5150-request-pull.sh b/t/t5150-request-pull.sh
index 2622057..75d6b38 100755
--- a/t/t5150-request-pull.sh
+++ b/t/t5150-request-pull.sh
@@ -216,8 +216,14 @@ test_expect_success 'pull request format' '
 		git request-pull initial "$downstream_url" tags/full >../request
 	) &&
 	<request sed -nf fuzz.sed >request.fuzzy &&
-	test_i18ncmp expect request.fuzzy
+	test_i18ncmp expect request.fuzzy &&
 
+	(
+		cd local &&
+		git request-pull initial "$downstream_url" tags/full:refs/tags/full
+	) >request &&
+	sed -nf fuzz.sed <request >request.fuzzy &&
+	test_i18ncmp expect request.fuzzy
 '
 
 test_expect_success 'request-pull ignores OPTIONS_KEEPDASHDASH poison' '
Previous: Linus TorvaldsNext: Junio C Hamano
Message 10 of 13 in “Make request-pull able to take a refspec of form local:remote”
  1. 2/1 Make request-pull able to take a refspec of form local:remoteLinus Torvalds, Jan 23, 2014
  2. Junio C HamanoJan 23, 2014
  3. Linus TorvaldsJan 23, 2014
  4. Junio C HamanoJan 23, 2014
  5. Linus TorvaldsJan 23, 2014
  6. Junio C HamanoJan 24, 2014
  7. Re* [RFC PATCH 2/1] Make request-pull able to take a refspec of form local:remoteJunio C Hamano, Jan 29, 2014
  8. brian m. carlsonJan 30, 2014
  9. Linus TorvaldsJan 30, 2014
  10. Junio C HamanoFeb 25, 2014
  11. Junio C HamanoMar 12, 2014
  12. Eric SunshineMar 12, 2014
  13. Junio C HamanoMar 13, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.