Bug 41164

Summary: Facilitate switching between git and HTTP repository access
Product: freedesktop.org Reporter: Dirk Wallenstein <halsmit>
Component: AdministrationAssignee: fd.o Admin Massive <sitewranglers>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Dirk Wallenstein 2011-09-24 01:41:03 UTC
Hi,
It would be nice if access to fd.o repos could be easily switched to HTTP.  If
you are using a script to access multiple repos, the simplest solution from the
user's perspective is to simply add this git configuration:

  [url "http"]                               
      insteadOf = "git"

There are two things that are preventing this to be robust currently.
1. Access without the 'anongit.freedesktop.org/git' subdirectory works with
   git, but not with http.
2. Access with the '.git' suffix is only optional if the actual repository has
   that suffix, and in the case of HTTP, only the exact address will work.

The ideal solution would be if any access combination would work.  Is that
feasible?  
Alternatively, it would be nice if HTTP access to a repository with a real
'.git' suffix, would work without that suffix specified in the URL.  This way
scripts could always use the '/git/' subdirectory and use URLs without '.git'
suffix.

A plus in the first column marks access that works, and a minus sign marks
access that doesn't work:

repository with '.git' suffix
+   git://anongit.freedesktop.org/xorg/app/xprop
+   git://anongit.freedesktop.org/git/xorg/app/xprop
+   git://anongit.freedesktop.org/git/xorg/app/xprop.git
+   git://anongit.freedesktop.org/xorg/app/xprop.git

repository without '.git' suffix
+   git://anongit.freedesktop.org/git/poppler/test
+   git://anongit.freedesktop.org/poppler/test
-   git://anongit.freedesktop.org/poppler/test.git
-   git://anongit.freedesktop.org/git/poppler/test.git

http access
  only exactly:  http://anongit.freedesktop.org/git/xorg/app/xprop.git
  only exactly:  http://anongit.freedesktop.org/git/poppler/test
Comment 1 Alan Coopersmith 2011-09-24 10:38:21 UTC
The /git/ subdirectory can be handled by customizing for freedesktop.org,
as noted on xorg-devel, I use:

[url "http://anongit.freedesktop.org/git/"]
    insteadOf = "git://anongit.freedesktop.org/"

Though I can see it would be nice not to special case different sites like that.

[BTW, isn't it about time to update the component for source code management
 in the "freedesktop.org" product in bugzilla to something other than "CVS"?]
Comment 2 Dirk Wallenstein 2011-09-24 12:01:57 UTC
(In reply to comment #1)
> The /git/ subdirectory can be handled by customizing for freedesktop.org,
> as noted on xorg-devel, I use:
> 
> [url "http://anongit.freedesktop.org/git/"]
>     insteadOf = "git://anongit.freedesktop.org/"

Yes, or start with a git://anongit.freedesktop.org/git/ URL.  What I really would like to see is a known way to formulate a git-URL for which a http translation always works (if http is supported).  If there would be some way to retry a HTTP URL with a '.git' suffix if it was missing, that would solve it.
Comment 3 Tollef Fog Heen 2011-10-15 12:31:15 UTC
I'm not sure what problem you're trying to solve here. If you want to use HTTP rather than git to access a repo, just use the HTTP url?
Comment 4 Dirk Wallenstein 2011-10-16 10:20:14 UTC
(In reply to comment #3)
> I'm not sure what problem you're trying to solve here. If you want to use HTTP
> rather than git to access a repo, just use the HTTP url?

There are some awesome scripts and frameworks that use URLs to access multiple
repos.  Those scripts have to decide which URL to use.  Fortunately Git
provides a way to change the protocol.  It does so by translating a starting
portion of the URL.  You can for example switch to using HTTP simply by
configuring this:

  [url "http"]                               
      insteadOf = "git"

This would make it easier for people who cannot use the git protocol to get the
sources.
The problem is that to get HTTP access to a repo, currently, one has to exactly
use the URL with or without '.git' suffix.  I guess that some repos do not have
a '.git' suffix.  I have found these repos:

    cairo
    cairo-5c
    cairo-www
    fontconfig
    gstreamer/gst-plugins-gl
    gstreamer/gst-rtsp-server
    gstreamer/jhbuild
    mesa/rbug-gui
    nouveau/linux-2.6
    plymouth
    poppler/test
    py2cairo
    pycairo
    roadster
    xorg/driver/xf86-video-radeonhd

To get rid of such access failures once and for all, it would be nice if it
would be possible to redirect to the right location by appending or stripping
the '.git' suffix.
Comment 5 Tollef Fog Heen 2011-12-26 10:40:39 UTC
Yes, you would have to use the correct URL, but where do we show URLs which are not correct wrt the trailing .git or not?
Comment 6 Dirk Wallenstein 2011-12-26 11:40:19 UTC
I think this should be fixed in Git

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.