Re: git svn's performance on cloning mono's branches/tags...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hin-Tak Leung wrote:
On Fri, Jun 26, 2009 at 6:15 AM, Andreas Ericsson<ae@xxxxxx> wrote:
Hin-Tak Leung wrote:
(I'm not on list so please CC) - I am trying to git svn clone mono's
repository, and for some strange reason it is doing a complete check
out from revision 1 all the way to each branch/tag . Is this normal or
am I doing anything wrong? I have git svn clone a few other things
recently (R, ghostscript) and I don't remember git doing this, but R
is quite a normal svn layout and I think I only have ghostcript trunk
(no branch/tag).

What I did was this: I started out with just git-svn clone trunk
(which generated the first two [now-commented out] lines), then I
thought I also want 2.4 branch so I added the next commented-out
section, and ran 'git svn fetch --all'. Then I thought I like the
whole thing - so I commented out most of it and added the 4 lines as
blow - which is also my current git config.

The problem is that it seems to treat every tag as a branch,
This is normal. SVN makes no real distinction between tags and branches,
so git-svn has no way of detecting which is which. SVN also allows
committing to "tags", so it doesn't make sense for git to store what
SVN calls tags as git tags.

As for your other questions, I don't know.

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

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.


I guess my question is two-fold:
1) what is the correct/recommended way of adding tags/branches *after*
already cloning trunk?


I don't know.

2) the current way of cloning svn repository is quite inefficient -
for every tag/branch, it does:
r1 -> rX branch 1
r1 -> rN tag 1
r1 -> rY branch 2
r1 -> rM tag 2
r1 -> rZ branch 3
etc

but I think it is possible to track branches to the point where it
branches off (when 'svn copy' happens), rather than all the way to r1?

This isn't really a question, but a statement with a question mark.

And in that sense tags are just very short branches.


Often, yes, but they *can* be committed to. SVN's inability to keep
immutable tags is one of the reasons I never looked at it to replace
CVS at $dayjob. But I digress..

The current behavior is quite bandwith consuming for projects with a
long history and lots of tags, like mono...


Hmm. I've cloned many subversion repositories to git, and I've never
seen the issues you're seeing. Perhaps because I always cloned the
entire repository the first time, or because I normally do such things
over a high-capacity connection, or because I just fire it up and
forget about it until it's done.

What happens if you ignore the already-cloned svn tree and just do
a new import without trying to continue the old one? Not that I'll
actually do anything about it, as I don't have any problems with it,
but I'm curious even so ;-)

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

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]