All of lore.kernel.org
 help / color / mirror / Atom feed
* Git public repository naming convention (was: Re: users.txt patch)
       [not found]           ` <87y7dtt0gk.fsf@rho.meyering.net>
@ 2007-10-24  8:41             ` Benoit SIGOURE
  2007-10-24  9:03               ` Git public repository naming convention Andreas Ericsson
  0 siblings, 1 reply; 2+ messages in thread
From: Benoit SIGOURE @ 2007-10-24  8:41 UTC (permalink / raw)
  To: Jim Meyering; +Cc: bug-gnulib, git list

[-- Attachment #1: Type: text/plain, Size: 3029 bytes --]

[CC: Git-ML]

On Oct 24, 2007, at 9:51 AM, Jim Meyering wrote:
> Benoit SIGOURE <tsuna@lrde.epita.fr> wrote:
>>> On Oct 24, 2007, at 12:28 AM, Paul Eggert wrote:
>>>> Index: gnulib.html
>>>> ===================================================================
>>>> RCS file: /web/gnulib/gnulib/gnulib.html,v
>>>> retrieving revision 1.13
>>>> retrieving revision 1.16
>>>> diff -p -u -r1.13 -r1.16
>>>> --- gnulib.html	22 Oct 2007 21:41:43 -0000	1.13
>>>> +++ gnulib.html	23 Oct 2007 22:22:18 -0000	1.16
>>>> @@ -57,14 +57,20 @@ You can also view the <a href="MODULES.h
>>>>  anonymous <a href='http://git.or.cz/'>Git</a>, using the following
>>>>  shell command:</p>
>>>>
>>>> -<pre><samp>git clone git://git.savannah.gnu.org/gnulib.git
>>>> +<pre><samp>git clone git://git.savannah.gnu.org/gnulib
>>>>  </samp></pre>
>>
>> Is there any reason why this has changed?  I learned (the hard way)
>> that for bare public repositories, it's better to stick to what turns
>> out to be more than a naming convention of `project.git'.  I don't
>
> What are the consequences of not doing that?

You can't git-clone the remote repo because it tries to fetch the  
wrong URL (if the url isn't of the form `foo.git' it will try to  
fetch `foo/.git' which will fail).

>> know if these issues are only related to dumb protocols (HTTP*) or if
>> they also affect the Git protocol.  I can't find the relevant thread
>
> Hmm... maybe it's http-specific?
> Things seem to work fine with the git protocol.

Yeah, that's what I wondered.

>> on the Git ML but the thing is that it seems that several tools rely
>> on the fact that a repository name of the form `foo.git' implies that
>> it's a bare repository (and thus it doesn't need to look for a   
>> nested
>> .git directory).
>
> It has always worked -- on that server, at least.
> I use that form because I prefer the shorter URL:
>
>     git clone git://git.sv.gnu.org/gnulib
>
> In general, if you control the server repo,
> you can simply add a symlink in project.git:
>
>     .git -> ..
>
> I suppose that avoids any such problems, but I haven't
> done that on any of the savannah repositories.

Yeah well that's more of a workaround than anything else.

My guess: it works with the Git protocol, probably because git-http- 
fetch works differently than whatever tool does the fetch for the  
native Git protocol.  OTOH, isn't it better to have a consistent  
naming?  If you look at the gitweb of gnulib [ http:// 
git.savannah.gnu.org/gitweb/?p=gnulib.git ], it says "URL git:// 
git.sv.gnu.org/gnulib.git".  Oddly enough, whether you add the `.git'  
or not doesn't seem to change anything.

The documentation (Documentation/urls.txt) only shows examples of the  
form `git://host.xz/path/to/repo.git/'.  So do Documentation/core- 
tutorial.txt, Documentation/git-clone.txt and Documentation/ 
repository-layout.txt (among others).

Maybe the Git gurus will be able to shed some light on this issue.

Cheers,

-- 
Benoit Sigoure aka Tsuna
EPITA Research and Development Laboratory



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 186 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Git public repository naming convention
  2007-10-24  8:41             ` Git public repository naming convention (was: Re: users.txt patch) Benoit SIGOURE
@ 2007-10-24  9:03               ` Andreas Ericsson
  0 siblings, 0 replies; 2+ messages in thread
From: Andreas Ericsson @ 2007-10-24  9:03 UTC (permalink / raw)
  To: Benoit SIGOURE; +Cc: Jim Meyering, bug-gnulib, git list

Benoit SIGOURE wrote:
> [CC: Git-ML]
> 
> On Oct 24, 2007, at 9:51 AM, Jim Meyering wrote:
>> Benoit SIGOURE <tsuna@lrde.epita.fr> wrote:
>>>> On Oct 24, 2007, at 12:28 AM, Paul Eggert wrote:
>>>>> Index: gnulib.html
>>>>> ===================================================================
>>>>> RCS file: /web/gnulib/gnulib/gnulib.html,v
>>>>> retrieving revision 1.13
>>>>> retrieving revision 1.16
>>>>> diff -p -u -r1.13 -r1.16
>>>>> --- gnulib.html    22 Oct 2007 21:41:43 -0000    1.13
>>>>> +++ gnulib.html    23 Oct 2007 22:22:18 -0000    1.16
>>>>> @@ -57,14 +57,20 @@ You can also view the <a href="MODULES.h
>>>>>  anonymous <a href='http://git.or.cz/'>Git</a>, using the following
>>>>>  shell command:</p>
>>>>>
>>>>> -<pre><samp>git clone git://git.savannah.gnu.org/gnulib.git
>>>>> +<pre><samp>git clone git://git.savannah.gnu.org/gnulib
>>>>>  </samp></pre>
>>>
>>> Is there any reason why this has changed?  I learned (the hard way)
>>> that for bare public repositories, it's better to stick to what turns
>>> out to be more than a naming convention of `project.git'.  I don't
>>
>> What are the consequences of not doing that?
> 
> You can't git-clone the remote repo because it tries to fetch the wrong 
> URL (if the url isn't of the form `foo.git' it will try to fetch 
> `foo/.git' which will fail).
> 
>>> know if these issues are only related to dumb protocols (HTTP*) or if
>>> they also affect the Git protocol.  I can't find the relevant thread
>>
>> Hmm... maybe it's http-specific?
>> Things seem to work fine with the git protocol.
> 
> Yeah, that's what I wondered.
> 
>>> on the Git ML but the thing is that it seems that several tools rely
>>> on the fact that a repository name of the form `foo.git' implies that
>>> it's a bare repository (and thus it doesn't need to look for a  nested
>>> .git directory).
>>
>> It has always worked -- on that server, at least.
>> I use that form because I prefer the shorter URL:
>>
>>     git clone git://git.sv.gnu.org/gnulib
>>
>> In general, if you control the server repo,
>> you can simply add a symlink in project.git:
>>
>>     .git -> ..
>>
>> I suppose that avoids any such problems, but I haven't
>> done that on any of the savannah repositories.
> 
> Yeah well that's more of a workaround than anything else.
> 
> My guess: it works with the Git protocol, probably because 
> git-http-fetch works differently than whatever tool does the fetch for 
> the native Git protocol.  OTOH, isn't it better to have a consistent 
> naming?  If you look at the gitweb of gnulib [ 
> http://git.savannah.gnu.org/gitweb/?p=gnulib.git ], it says "URL 
> git://git.sv.gnu.org/gnulib.git".  Oddly enough, whether you add the 
> `.git' or not doesn't seem to change anything.
> 
> The documentation (Documentation/urls.txt) only shows examples of the 
> form `git://host.xz/path/to/repo.git/'.  So do 
> Documentation/core-tutorial.txt, Documentation/git-clone.txt and 
> Documentation/repository-layout.txt (among others).
> 
> Maybe the Git gurus will be able to shed some light on this issue.
> 

The dwimmery is handled on the server side and always happens unless
git-upload-pack gets the --strict flag. In git-daemon, this option is
called "--strict-paths".

git clone http://anything means the request doesn't end up in the hands
of git-upload-pack, so the DWIM code in path.c::enter_repo() is never
run.

Letting http-fetch re-implement the same dwimmery, using a trial/error
approach, but saving the correct URL in the remotes config, should
solve this problem, although it will be quite slow on high-latency
networks. Perhaps that doesn't matter, as it should only be an issue
for the original clone.

The suffixes to try are these:
const char *suffix[] = { ".git/.git", "/.git", ".git", "", NULL };

I believe gitweb mimics this behaviour.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-10-24  9:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <471E50AA.2020004@gnu.org>
     [not found] ` <200710232339.05948.bruno@clisp.org>
     [not found]   ` <471E6A74.1050402@podval.org>
     [not found]     ` <loom.20071023T215212-99@post.gmane.org>
     [not found]       ` <87sl41cvpj.fsf@penguin.cs.ucla.edu>
     [not found]         ` <86C7B590-6DF9-4785-92CB-B1466641256F@lrde.epita.fr>
     [not found]           ` <87y7dtt0gk.fsf@rho.meyering.net>
2007-10-24  8:41             ` Git public repository naming convention (was: Re: users.txt patch) Benoit SIGOURE
2007-10-24  9:03               ` Git public repository naming convention Andreas Ericsson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.