threads / discuss / 28174

git svn --stdlayout 's little quirk.

Subject: git svn --stdlayout 's little quirk.

## tl;dr

8 messages between Aug 20, 2011 and Aug 23, 2011.

replies: 7people: 4as markdown or json

Hin-Tak Leung· Aug 20, 2011, 17:06 UTC · lore
first of all, thanks for a great tool - use it daily!
I think I found a small bug in git 1.7.6. Having "trunk" at the end of the url in combination of --stdlayout is wrong, but it looks like that git-svn tries to cope, but doesn't go try far enough:

Doing this: ---------------- git svn clone --stdlayout http://quick-settings.googlecode.com/svn/trunk/ android-quick-settings ----------------

Gives this message and stops: ---------------- Initialized empty Git repository in /home/Hin-Tak/tmp-git/svn-imports/android-quick-settings/.git/ Using higher level of URL: http://quick-settings.googlecode.com/svn/trunk => http://quick-settings.googlecode.com/svn ----------------

When I saw the message I thought it is striping the ending 'trunk' for my convenience, but when I look at .git/config:
--------------------
$ more .git/config 
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[svn-remote "svn"]
	url = http://quick-settings.googlecode.com/svn
	fetch = trunk/trunk:refs/remotes/trunk
	branches = trunk/branches/*:refs/remotes/*
	tags = trunk/tags/*:refs/remotes/tags/*
------------------
It is doing 'trunk/trunk', etc, which is why it stopped.
Can it either clone correctly despite the wrong instruction, or fail with a better message than 'Using higher level...' which suggests it tried?
Eric Wong· Aug 20, 2011, 18:35 UTC · re: Hin-Tak Leung · lore

Re: git svn --stdlayout 's little quirk.

Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
> first of all, thanks for a great tool - use it daily!
You're welcome :>
Show 7 quoted lines
> I think I found a small bug in git 1.7.6. Having "trunk" at the end of
> the url in combination of --stdlayout is wrong, but it looks like that
> git-svn tries to cope, but doesn't go try far enough:
> 
> Doing this:
> ----------------
> git svn clone --stdlayout http://quick-settings.googlecode.com/svn/trunk/ android-quick-settings

--stdlayout expects the "root" path of the code you're interested in (not necessarily the SVN repository root, but in this case they could be the same).

Try the following instead:
git svn clone --stdlayout \
  http://quick-settings.googlecode.com/svn android-quick-settings
-- 
Eric Wong
Hin-Tak Leung· Aug 21, 2011, 09:38 UTC · re: Eric Wong · lore

Re: git svn --stdlayout 's little quirk.

--- On Sat, 20/8/11, Eric Wong <normalperson@yhbt.net> wrote:
Show 22 quoted lines
> > I think I found a small bug in git 1.7.6. Having
> "trunk" at the end of
> > the url in combination of --stdlayout is wrong, but it
> looks like that
> > git-svn tries to cope, but doesn't go try far enough:
> > 
> > Doing this:
> > ----------------
> > git svn clone --stdlayout http://quick-settings.googlecode.com/svn/trunk/
> android-quick-settings
> 
> --stdlayout expects the "root" path of the code you're
> interested
> in (not necessarily the SVN repository root, but in this
> case they
> could be the same).
> 
> Try the following instead:
> 
> git svn clone --stdlayout \
>   http://quick-settings.googlecode.com/svn
> android-quick-settings
I know this is the correct way - what I meant was that, having "trunk" at the end is wrong but git-svn appears to try to correct it automatically, but haven't quite succceeded.
Hin-Tak 
Michael J Gruber· Aug 22, 2011, 09:01 UTC · re: Hin-Tak Leung · lore

Re: git svn --stdlayout 's little quirk.

Hin-Tak Leung venit, vidit, dixit 21.08.2011 11:38:
Show 26 quoted lines
> --- On Sat, 20/8/11, Eric Wong <normalperson@yhbt.net> wrote:
> 
>>> I think I found a small bug in git 1.7.6. Having
>> "trunk" at the end of
>>> the url in combination of --stdlayout is wrong, but it
>> looks like that
>>> git-svn tries to cope, but doesn't go try far enough:
>>>
>>> Doing this:
>>> ----------------
>>> git svn clone --stdlayout http://quick-settings.googlecode.com/svn/trunk/
>> android-quick-settings
>>
>> --stdlayout expects the "root" path of the code you're
>> interested
>> in (not necessarily the SVN repository root, but in this
>> case they
>> could be the same).
>>
>> Try the following instead:
>>
>> git svn clone --stdlayout \
>>   http://quick-settings.googlecode.com/svn
>> android-quick-settings
> 
> I know this is the correct way - what I meant was that, having "trunk" at the end is wrong but git-svn appears to try to correct it automatically, but haven't quite succceeded.

It is not trying to do that at all. git-svn is trying to figure out what the "base path" is in an svn repo which possibly hosts multiple repos, and that is what the message reports.

Michael
Hin-Tak Leung· Aug 22, 2011, 15:11 UTC · re: Michael J Gruber · lore

Re: git svn --stdlayout 's little quirk.

--- On Mon, 22/8/11, Michael J Gruber <git@drmicha.warpmail.net> wrote:
Show 43 quoted lines
> Hin-Tak Leung venit, vidit, dixit
> 21.08.2011 11:38:
> > --- On Sat, 20/8/11, Eric Wong <normalperson@yhbt.net>
> wrote:
> > 
> >>> I think I found a small bug in git 1.7.6.
> Having
> >> "trunk" at the end of
> >>> the url in combination of --stdlayout is
> wrong, but it
> >> looks like that
> >>> git-svn tries to cope, but doesn't go try far
> enough:
> >>>
> >>> Doing this:
> >>> ----------------
> >>> git svn clone --stdlayout http://quick-settings.googlecode.com/svn/trunk/
> >> android-quick-settings
> >>
> >> --stdlayout expects the "root" path of the code
> you're
> >> interested
> >> in (not necessarily the SVN repository root, but
> in this
> >> case they
> >> could be the same).
> >>
> >> Try the following instead:
> >>
> >> git svn clone --stdlayout \
> >>   http://quick-settings.googlecode.com/svn
> >> android-quick-settings
> > 
> > I know this is the correct way - what I meant was
> that, having "trunk" at the end is wrong but git-svn appears
> to try to correct it automatically, but haven't quite
> succceeded.
> 
> It is not trying to do that at all. git-svn is trying to
> figure out what
> the "base path" is in an svn repo which possibly hosts
> multiple repos,
> and that is what the message reports.
Okay... thanks for clarifying that. Maybe it could try to be clever? Afterall, --stdlayout isn't compatible with a URL ending in "trunk" (or having 'trunk' as part of the URL). Just a suggestion.
Hin-Tak
Michael J Gruber· Aug 22, 2011, 15:28 UTC · re: Hin-Tak Leung · lore

Re: git svn --stdlayout 's little quirk.

Hin-Tak Leung venit, vidit, dixit 22.08.2011 17:11:
Show 47 quoted lines
> --- On Mon, 22/8/11, Michael J Gruber <git@drmicha.warpmail.net> wrote:
> 
>> Hin-Tak Leung venit, vidit, dixit
>> 21.08.2011 11:38:
>>> --- On Sat, 20/8/11, Eric Wong <normalperson@yhbt.net>
>> wrote:
>>>
>>>>> I think I found a small bug in git 1.7.6.
>> Having
>>>> "trunk" at the end of
>>>>> the url in combination of --stdlayout is
>> wrong, but it
>>>> looks like that
>>>>> git-svn tries to cope, but doesn't go try far
>> enough:
>>>>>
>>>>> Doing this:
>>>>> ----------------
>>>>> git svn clone --stdlayout http://quick-settings.googlecode.com/svn/trunk/
>>>> android-quick-settings
>>>>
>>>> --stdlayout expects the "root" path of the code
>> you're
>>>> interested
>>>> in (not necessarily the SVN repository root, but
>> in this
>>>> case they
>>>> could be the same).
>>>>
>>>> Try the following instead:
>>>>
>>>> git svn clone --stdlayout \
>>>>    http://quick-settings.googlecode.com/svn
>>>> android-quick-settings
>>>
>>> I know this is the correct way - what I meant was
>> that, having "trunk" at the end is wrong but git-svn appears
>> to try to correct it automatically, but haven't quite
>> succceeded.
>>
>> It is not trying to do that at all. git-svn is trying to
>> figure out what
>> the "base path" is in an svn repo which possibly hosts
>> multiple repos,
>> and that is what the message reports.
> 
> Okay... thanks for clarifying that. Maybe it could try to be clever? Afterall, --stdlayout isn't compatible with a URL ending in "trunk" (or having 'trunk' as part of the URL). Just a suggestion.
You *could* have this layout:

foo/trunk/trunk foo/trunk/tags/v1 foo/trunk/tags/v2

That's a perfectly valid layout. The fact that it is stupidly named should not activate git-svn magic.

Michael
Hin-Tak Leung· Aug 22, 2011, 15:57 UTC · re: Michael J Gruber · lore

Re: git svn --stdlayout 's little quirk.

--- On Mon, 22/8/11, Michael J Gruber <git@drmicha.warpmail.net> wrote:
Show 22 quoted lines
> >> It is not trying to do that at all. git-svn is
> trying to
> >> figure out what
> >> the "base path" is in an svn repo which possibly
> hosts
> >> multiple repos,
> >> and that is what the message reports.
> > 
> > Okay... thanks for clarifying that. Maybe it could try
> to be clever? Afterall, --stdlayout isn't compatible with a
> URL ending in "trunk" (or having 'trunk' as part of the
> URL). Just a suggestion.
> 
> You *could* have this layout:
> 
> foo/trunk/trunk
> foo/trunk/tags/v1
> foo/trunk/tags/v2
> 
> That's a perfectly valid layout. The fact that it is
> stupidly named
> should not activate git-svn magic.
Fair enough. Perhaps --stdlayout in combination with URL having "trunk" in the name can emit a warning? e.g. "are you sure? That looks a bit stupidly named". I wrote because I think git-svn could either try a bit harder at guessing, or be a bit clearer about the repository not conforming to a standard layout (if the URL is wrong).
Hin-Tak
Andreas Krey· Aug 23, 2011, 06:09 UTC · re: Michael J Gruber · lore

Re: git svn --stdlayout 's little quirk.

On Mon, 22 Aug 2011 17:28:30 +0000, Michael J Gruber wrote: ...

Show 5 quoted lines
> You *could* have this layout:
> 
> foo/trunk/trunk
> foo/trunk/tags/v1
> foo/trunk/tags/v2

We *do*. Ok, it's more like dev/trunk/mod/submod/trunk (and sometimes with even more trunks). Stupid historical accident.

Andreas
-- 
"Totally trivial. Famous last words."
From: Linus Torvalds <torvalds@*.org>
Date: Fri, 22 Jan 2010 07:29:21 -0800

← back to recent threads