Re: Re* How to generate pull-request with info of signed tag

Subsystems: the rest

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: Re* How to generate pull-request with info of signed tag

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:52:40

Junio C Hamano [off-list ref] writes:
Come to think of it, the last patch I sent out on request pull was very
wrong....
And this should fix it.

-- >8 --
Subject: [PATCH] request-pull: do not emit "tag" before the tagname

The whole point of the recent update to allow "git pull $url $tagname" is
so that the integrator does not have to store the (signed) tag that is
used to convey authenticity to be recorded in the resulting merge in the
local repository's tag namespace.  Asking for a merge be made with "git
pull $url tag $tagname" defeats it.

Note that the request can become ambiguous if the requestor has a branch
with the same name as the tag, but that is not a new problem limited to
pulling. I wouldn't mind if somebody wants to add disambiguation to the
find_matching_ref logic in the script as a separate patch, though.

Signed-off-by: Junio C Hamano <redacted>
---
 git-request-pull.sh     |    4 +---
 t/t5150-request-pull.sh |    2 +-
 2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/git-request-pull.sh b/git-request-pull.sh
index 7b5c777..d7ba117 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -63,10 +63,8 @@ die "fatal: No commits in common between $base and $head"
 find_matching_ref='
 	sub abbr {
 		my $ref = shift;
-		if ($ref =~ s|refs/heads/||) {
+		if ($ref =~ s|refs/heads/|| || $ref =~ s|refs/tags/||) {
 			return $ref;
-		} elsif ($ref =~ s|refs/tags/||) {
-			return "tag $ref";
 		} else {
 			return $ref;
 		}
diff --git a/t/t5150-request-pull.sh b/t/t5150-request-pull.sh
index aec842f..da25bc2 100755
--- a/t/t5150-request-pull.sh
+++ b/t/t5150-request-pull.sh
@@ -180,7 +180,7 @@ test_expect_success 'request names an appropriate branch' '
 		read branch
 	} <digest &&
 	{
-		test "$branch" = tag--full ||
+		test "$branch" = full ||
 		test "$branch" = master ||
 		test "$branch" = for-upstream
 	}
-- 
1.7.8.370.gb3269

Re: Re* How to generate pull-request with info of signed tag

From: Aneesh Kumar K.V <hidden>
Date: 2016-06-15 22:52:41

On Mon, 19 Dec 2011 12:06:55 -0800, Junio C Hamano [off-list ref] wrote:
quoted hunk
Junio C Hamano [off-list ref] writes:
quoted
Come to think of it, the last patch I sent out on request pull was very
wrong....
And this should fix it.

-- >8 --
Subject: [PATCH] request-pull: do not emit "tag" before the tagname

The whole point of the recent update to allow "git pull $url $tagname" is
so that the integrator does not have to store the (signed) tag that is
used to convey authenticity to be recorded in the resulting merge in the
local repository's tag namespace.  Asking for a merge be made with "git
pull $url tag $tagname" defeats it.

Note that the request can become ambiguous if the requestor has a branch
with the same name as the tag, but that is not a new problem limited to
pulling. I wouldn't mind if somebody wants to add disambiguation to the
find_matching_ref logic in the script as a separate patch, though.

Signed-off-by: Junio C Hamano <redacted>
---
 git-request-pull.sh     |    4 +---
 t/t5150-request-pull.sh |    2 +-
 2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/git-request-pull.sh b/git-request-pull.sh
index 7b5c777..d7ba117 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -63,10 +63,8 @@ die "fatal: No commits in common between $base and $head"
 find_matching_ref='
 	sub abbr {
 		my $ref = shift;
-		if ($ref =~ s|refs/heads/||) {
+		if ($ref =~ s|refs/heads/|| || $ref =~ s|refs/tags/||) {
 			return $ref;
-		} elsif ($ref =~ s|refs/tags/||) {
-			return "tag $ref";
 		} else {
 			return $ref;
 		}
diff --git a/t/t5150-request-pull.sh b/t/t5150-request-pull.sh
index aec842f..da25bc2 100755
--- a/t/t5150-request-pull.sh
+++ b/t/t5150-request-pull.sh
@@ -180,7 +180,7 @@ test_expect_success 'request names an appropriate branch' '
 		read branch
 	} <digest &&
 	{
-		test "$branch" = tag--full ||
+		test "$branch" = full ||
 		test "$branch" = master ||
 		test "$branch" = for-upstream
 	}
Also can we make .git/config remote stanza to have something like below


     fetch = +refs/tags/*:refs/tags/abc/*

so that one can do

   git fetch t-remote tag-name

and that get stored to abc/tag-name 

-aneesh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help