# git-svn feature idea

2 messages from 2011-05-21 to 2011-05-21. Participants: fREW Schmidt, Michael J Gruber.
Thread: https://gitlist.dev/t/27420

## fREW Schmidt, 2011-05-21 03:41

Subject: git-svn feature idea
Message-ID: <BANLkTi=OHfHaHE86z8Ufj44J+Oxu8ec5ug@mail.gmail.com>
URL: https://gitlist.dev/e/BANLkTi%3DOHfHaHE86z8Ufj44J%2BOxu8ec5ug%40mail.gmail.com

```
Hey guys,
Lately I've been doing a lot of permanent subversion to git
conversions, and I keep running into braindead repo structures that
give me pain to export.  The main one is this:

trying to check out MyProject:

trunk/MyProject
trunk/OtherProject
tags/MyProject-1.0
tags/MyProject-1.1
tags/OtherProject-1.0

So you see I can't just specify to git-svn that tags is the tags dir.
I know a workaround (check out each tag separately and then use git
fetch to put them all in the same repo) but that's really inefficient.

So really what would be great would be to be able to do the following:

git svn clone $repo --trunk=trunk/MyProject --tag=tags/MyProject-1.0
(and --branch would be great too)

Anyway, I am fairly well versed with perl, so I could try my hand at
writing such a feature, but I wouldn't really know where to start or
if anyone other than me is even interested in something this.

Thoughts?

--
fREW Schmidt
http://blog.afoolishmanifesto.com

```

## Michael J Gruber, 2011-05-21 10:03

Subject: Re: git-svn feature idea
Message-ID: <4DD78DEE.5060206@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4DD78DEE.5060206%40drmicha.warpmail.net
In-Reply-To: <BANLkTi=OHfHaHE86z8Ufj44J+Oxu8ec5ug@mail.gmail.com>

```
fREW Schmidt venit, vidit, dixit 21.05.2011 05:41:
> Hey guys,
> Lately I've been doing a lot of permanent subversion to git
> conversions, and I keep running into braindead repo structures that
> give me pain to export.  The main one is this:
> 
> trying to check out MyProject:
> 
> trunk/MyProject
> trunk/OtherProject
> tags/MyProject-1.0
> tags/MyProject-1.1
> tags/OtherProject-1.0
> 
> So you see I can't just specify to git-svn that tags is the tags dir.
> I know a workaround (check out each tag separately and then use git
> fetch to put them all in the same repo) but that's really inefficient.
> 
> So really what would be great would be to be able to do the following:
> 
> git svn clone $repo --trunk=trunk/MyProject --tag=tags/MyProject-1.0
> (and --branch would be great too)
> 
> Anyway, I am fairly well versed with perl, so I could try my hand at
> writing such a feature, but I wouldn't really know where to start or
> if anyone other than me is even interested in something this.

If you scroll down to the config section in git-svn(1) you will find
that you can use things like this:

fetch = trunk/MyProject:refs/remotes/foo/trunk
tags = tags/MyProject-*:refs/remotes/foo/tags/*

I seem to remember you can even specify these as arguments to -t and
such but haven't checked.

Uh. Wait. We allow only .../*/... and .../* on the left hand side, at
least per the doc. So, you could either use the existing variant

tags = tags/{MyProject-1.0,MyProject-1.}:refs/remotes/foo/tags/*

or use your perl foo and lift the /*/ requirement.

Michael

```
