threads / discuss / 27420

git-svn feature idea

Subject: git-svn feature idea

## tl;dr

2 messages between May 21, 2011 and May 21, 2011.

replies: 1people: 2as markdown or json

fREW Schmidt· May 21, 2011, 03:41 UTC · lore

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· May 21, 2011, 10:03 UTC · re: fREW Schmidt · lore

Re: git-svn feature idea

fREW Schmidt venit, vidit, dixit 21.05.2011 05:41:
Show 25 quoted lines
> 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

← back to recent threads