Re* regression: request-pull with signed tag lacks tags/ in master

2014-05-16 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 Michael S. Tsirkin m...@redhat.com writes:

 My reading of the earlier parts of the series is that Linus wanted
 us never dwim for-upstream to tags/for-upstream or any other ref
 that happens to point at the same commit as for-upstream you have.
 The changes done for that purpose covered various cases a bit too
 widely, and request-pull ... tags/for_upstream were incorrectly
 stripped to a request to pull for_upstream, which was fixed by
 5aae66bd (request-pull: resurrect pretty refname feature,
 2014-02-25).
 
 But that fix does not resurrect the dwimming forbid by the earlier
 parts of the series to turn for_upstream into tags/for_upstream.
 
 What would you get if you do this?
 
 $ git request-pull origin/master \
   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git \
   tags/for_upstream | grep git.kernel.org


 I get
  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

 Thanks for double-checking.  Let's close this as working as
 intended, then.

 I personally feel that the intention tightened the logic a bit too
 much [*1*], and with the updates mentioned in [*2*], existing users
 may find it still too tight, but that is what we have today.


 [References]

 *1* http://thread.gmane.org/gmane.comp.version-control.git/240860
 *2* http://thread.gmane.org/gmane.comp.version-control.git/240886

An update.

In the ideal world, I think it would be nice to make

$ git request-pull $mine $URL for_upstream

explicitly say Please pull tags/for_upstream rather than without
tags/ prefix to accomodate older Git, where

$ git pull $URL for_upstream

did not DWIM to fetch and merge tags/for_upstream and the user had
to say tags/for_upstream instead.

That older Git refers to those without 47d84b6a (fetch: allow git
fetch $there v1.0 to fetch a tag, 2011-11-04).  v1.7.10 (tagged on
April 6th, 2012) and later versions of Git will notice that the name
refers to the tags/for_upstream just fine, so I think it is fair to
label this as a minor cosmetic regression whose fix can wait for a
future maintenance release, rather than a blocker for the upcoming
release.

I _think_ the fix, without breaking the spirit of Linus's I do not
want the thing DWIM based on what the remote end has original,
would be as simple as this patch.  We can queue it as a regression
fix and do another round of -rc4 if those who depend on request-pull
heavily feel strongly about it.

Comments?


 git-request-pull.sh | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/git-request-pull.sh b/git-request-pull.sh
index 5c15997..d5500fd 100755
--- a/git-request-pull.sh
+++ b/git-request-pull.sh
@@ -119,6 +119,12 @@ then
status=1
 fi
 
+# Special case: turn for_linus to tags/for_linus when it is correct
+if test $ref = refs/tags/$pretty_remote
+then
+   pretty_remote=tags/$pretty_remote
+fi
+
 url=$(git ls-remote --get-url $url)
 
 git show -s --format='The following changes since commit %H:


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: regression: request-pull with signed tag lacks tags/ in master

2014-05-15 Thread Junio C Hamano
Michael S. Tsirkin m...@redhat.com writes:

 looks like pull requests with signed git got broken in git master:

 [mst@robin qemu]$ /usr/bin/git --version
 git version 1.8.3.1
 [mst@robin qemu]$ git --version
 git version 2.0.0.rc1.18.gac53fc6.dirty
 [mst@robin qemu]$ 
 [mst@robin qemu]$ /usr/bin/git request-pull origin/master 
 git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream |grep 
 git.kernel.org
   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream


 [mst@robin qemu]$ git request-pull origin/master 
 git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream |grep 
 git.kernel.org
   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream

 this for_upstream syntax is a problem because it does not work
 for older git clients who might get this request.

 Didn't bisect yet - anyone knows what broke this?

Linus ;-)  The series that ends with ec44507, I think.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: regression: request-pull with signed tag lacks tags/ in master

2014-05-15 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 Michael S. Tsirkin m...@redhat.com writes:

 looks like pull requests with signed git got broken in git master:

 [mst@robin qemu]$ /usr/bin/git --version
 git version 1.8.3.1
 [mst@robin qemu]$ git --version
 git version 2.0.0.rc1.18.gac53fc6.dirty
 [mst@robin qemu]$ 
 [mst@robin qemu]$ /usr/bin/git request-pull origin/master 
 git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream |grep 
 git.kernel.org
   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream


 [mst@robin qemu]$ git request-pull origin/master 
 git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream |grep 
 git.kernel.org
   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream

 this for_upstream syntax is a problem because it does not work
 for older git clients who might get this request.

 Didn't bisect yet - anyone knows what broke this?

 Linus ;-)  The series that ends with ec44507, I think.

My reading of the earlier parts of the series is that Linus wanted
us never dwim for-upstream to tags/for-upstream or any other ref
that happens to point at the same commit as for-upstream you have.
The changes done for that purpose covered various cases a bit too
widely, and request-pull ... tags/for_upstream were incorrectly
stripped to a request to pull for_upstream, which was fixed by
5aae66bd (request-pull: resurrect pretty refname feature,
2014-02-25).

But that fix does not resurrect the dwimming forbid by the earlier
parts of the series to turn for_upstream into tags/for_upstream.

What would you get if you do this?

$ git request-pull origin/master \
  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git \
  tags/for_upstream | grep git.kernel.org
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: regression: request-pull with signed tag lacks tags/ in master

2014-05-15 Thread Michael S. Tsirkin
On Thu, May 15, 2014 at 12:13:18PM -0700, Junio C Hamano wrote:
 Junio C Hamano gits...@pobox.com writes:
 
  Michael S. Tsirkin m...@redhat.com writes:
 
  looks like pull requests with signed git got broken in git master:
 
  [mst@robin qemu]$ /usr/bin/git --version
  git version 1.8.3.1
  [mst@robin qemu]$ git --version
  git version 2.0.0.rc1.18.gac53fc6.dirty
  [mst@robin qemu]$ 
  [mst@robin qemu]$ /usr/bin/git request-pull origin/master 
  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream |grep 
  git.kernel.org
git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
 
 
  [mst@robin qemu]$ git request-pull origin/master 
  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream |grep 
  git.kernel.org
git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git for_upstream
 
  this for_upstream syntax is a problem because it does not work
  for older git clients who might get this request.
 
  Didn't bisect yet - anyone knows what broke this?
 
  Linus ;-)  The series that ends with ec44507, I think.
 
 My reading of the earlier parts of the series is that Linus wanted
 us never dwim for-upstream to tags/for-upstream or any other ref
 that happens to point at the same commit as for-upstream you have.
 The changes done for that purpose covered various cases a bit too
 widely, and request-pull ... tags/for_upstream were incorrectly
 stripped to a request to pull for_upstream, which was fixed by
 5aae66bd (request-pull: resurrect pretty refname feature,
 2014-02-25).
 
 But that fix does not resurrect the dwimming forbid by the earlier
 parts of the series to turn for_upstream into tags/for_upstream.
 
 What would you get if you do this?
 
 $ git request-pull origin/master \
   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git \
   tags/for_upstream | grep git.kernel.org


I get
 git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: regression: request-pull with signed tag lacks tags/ in master

2014-05-15 Thread Junio C Hamano
Michael S. Tsirkin m...@redhat.com writes:

 My reading of the earlier parts of the series is that Linus wanted
 us never dwim for-upstream to tags/for-upstream or any other ref
 that happens to point at the same commit as for-upstream you have.
 The changes done for that purpose covered various cases a bit too
 widely, and request-pull ... tags/for_upstream were incorrectly
 stripped to a request to pull for_upstream, which was fixed by
 5aae66bd (request-pull: resurrect pretty refname feature,
 2014-02-25).
 
 But that fix does not resurrect the dwimming forbid by the earlier
 parts of the series to turn for_upstream into tags/for_upstream.
 
 What would you get if you do this?
 
 $ git request-pull origin/master \
   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git \
   tags/for_upstream | grep git.kernel.org


 I get
  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

Thanks for double-checking.  Let's close this as working as
intended, then.

I personally feel that the intention tightened the logic a bit too
much [*1*], and with the updates mentioned in [*2*], existing users
may find it still too tight, but that is what we have today.


[References]

*1* http://thread.gmane.org/gmane.comp.version-control.git/240860
*2* http://thread.gmane.org/gmane.comp.version-control.git/240886
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html