Discussion:
git svn --stdlayout 's little quirk.
Hin-Tak Leung
2011-08-20 17:06:28 UTC
Permalink
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
2011-08-20 18:35:04 UTC
Permalink
Post by Hin-Tak Leung
first of all, thanks for a great tool - use it daily!
You're welcome :>
Post by Hin-Tak Leung
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 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
2011-08-21 09:38:02 UTC
Permalink
Post by Hin-Tak Leung
Post by Hin-Tak Leung
I think I found a small bug in git 1.7.6. Having
"trunk" at the end of
Post by Hin-Tak Leung
the url in combination of --stdlayout is wrong, but it
looks like that
Post by Hin-Tak Leung
=20
----------------
git svn clone --stdlayout http://quick-settings.googlecode.com/svn/=
trunk/
Post by Hin-Tak Leung
android-quick-settings
=20
--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).
=20
=20
git svn clone --stdlayout \
=A0 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 automatica=
lly, but haven't quite succceeded.

Hin-Tak=20
Michael J Gruber
2011-08-22 09:01:07 UTC
Permalink
Post by Hin-Tak Leung
Post by Hin-Tak Leung
I think I found a small bug in git 1.7.6. Having
"trunk" at the end of
Post by Hin-Tak Leung
the url in combination of --stdlayout is wrong, but it
looks like that
Post by Hin-Tak Leung
----------------
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).
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
2011-08-22 15:11:38 UTC
Permalink
Hin-Tak Leung venit, vidit, dixit
Post by Hin-Tak Leung
=20
Post by Hin-Tak Leung
Post by Hin-Tak Leung
I think I found a small bug in git 1.7.6.
Having
Post by Hin-Tak Leung
Post by Hin-Tak Leung
"trunk" at the end of
Post by Hin-Tak Leung
the url in combination of --stdlayout is
wrong, but it
Post by Hin-Tak Leung
Post by Hin-Tak Leung
looks like that
Post by Hin-Tak Leung
git-svn tries to cope, but doesn't go try far
----------------
git svn clone --stdlayout http://quick-settings.googlecode.com/sv=
n/trunk/
Post by Hin-Tak Leung
Post by Hin-Tak Leung
android-quick-settings
--stdlayout expects the "root" path of the code
you're
Post by Hin-Tak Leung
Post by Hin-Tak Leung
interested
in (not necessarily the SVN repository root, but
in this
Post by Hin-Tak Leung
Post by Hin-Tak Leung
case they
could be the same).
git svn clone --stdlayout \
=A0=A0=A0http://quick-settings.googlecode.com/svn
android-quick-settings
=20
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.
=20
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? Af=
terall, --stdlayout isn't compatible with a URL ending in "trunk" (or h=
aving 'trunk' as part of the URL). Just a suggestion.

Hin-Tak
Michael J Gruber
2011-08-22 15:28:30 UTC
Permalink
Hin-Tak Leung venit, vidit, dixit
Post by Hin-Tak Leung
Post by Hin-Tak Leung
Post by Hin-Tak Leung
I think I found a small bug in git 1.7.6.
Having
Post by Hin-Tak Leung
Post by Hin-Tak Leung
"trunk" at the end of
Post by Hin-Tak Leung
the url in combination of --stdlayout is
wrong, but it
Post by Hin-Tak Leung
Post by Hin-Tak Leung
looks like that
Post by Hin-Tak Leung
git-svn tries to cope, but doesn't go try far
----------------
git svn clone --stdlayout http://quick-settings.googlecode.com/svn/trunk/
android-quick-settings
--stdlayout expects the "root" path of the code
you're
Post by Hin-Tak Leung
Post by Hin-Tak Leung
interested
in (not necessarily the SVN repository root, but
in this
Post by Hin-Tak Leung
Post by Hin-Tak Leung
case they
could be the same).
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
2011-08-22 15:57:27 UTC
Permalink
Post by Michael J Gruber
Post by Hin-Tak Leung
Post by Michael J Gruber
It is not trying to do that at all. git-svn is
trying to
Post by Hin-Tak Leung
Post by Michael J Gruber
figure out what
the "base path" is in an svn repo which possibly
hosts
Post by Hin-Tak Leung
Post by Michael J Gruber
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.
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
2011-08-23 06:09:27 UTC
Permalink
On Mon, 22 Aug 2011 17:28:30 +0000, Michael J Gruber wrote:
...
Post by Michael J Gruber
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
Loading...