Index syndication
comment syndication

Clone a part of an SVN repository in git

I was trying to clone my wordpress plugin from the wordpress svn repo using git-svn. I had no luck for about the past 8 weeks, with this problem:

Initialized empty Git repository in /Users/lantrix/tweet/.git/
Using higher level of URL: =>

And it would proceed to hit up the entire wordpress repo.
After reading a possible solution on Charlie’s Old blog, I stubmled across a newer way to do this.

As of v1.6.4 of git, you can now use a –no-minimize-url when doing a git-svn clone. This makes git clone only the part of the repo you want; and the added bonus is you can get all your tags and branches.

Here is how I did it:

git svn clone –prefix=svn/ –stdlayout \
–authors-file=authors.txt \

It still took a while to parse all the SVN history, and now of course this stands out in the git-svn doco 😛

The authors.txt file just mapped my svn users to git user/email pair, e.g.:

lantrix = Lantrix <[email protected]>
plugin-master = none <[email protected]>
(no author) = none <[email protected]>

You will probably want to have a look at these set of scripts. Have a read of NothingMuch’s perl blog for extra steps and details on extra svn conversion scripts.