Yet another SVN to git conversion tool

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

 



Hi,

Recently I needed to convert the Gnome ooo-build repository from the Gnome SVN 
to git [1], and also create a regularly updated git mirror of the 
OpenOffice.org SVN repository [2].  Unfortunately I did not find a tool that 
would suffice my needs - git-svn was unable to handle more branches, and 
http://repo.or.cz/w/svn-all-fast-export.git had a Qt4 dependency that made it 
problematic to even compile, not to mention the syntax of the repository 
description file(s) that I did not really understand - so I decided to create 
a new tool based on svn-fast-export.c [3]:

http://cgit.freedesktop.org/ooo-build/contrib/svn-to-git

I made it for our needs, so there is just a simple Makefile, the code might be 
hacky here and there [and is C++ ;-)], but it seems to work really well - at 
least for us [4] :-)

Features:

- perfect import of trunk (master), branches and tags
  - even when you svn cp things around like
    svn cp branches/blah/bleh trunk/foo/bar
  - when there are commits to the tags

- change login names to real names and email addresses

- converts ChangeLog-like commit messages to git-like (optionally)

- allows you to split one SVN tree to multiple git trees
  - based on regexps

- allows you to convert leading tabs to spaces in files you choose
  - (fixes a terrible pain in the OOo sources where tab is set to 4 spaces,
    and leading tabs and spaces are combined in nearly every source file!)

- allows you to ignore broken tags/commits

- and is really fast
  - the OOo SVN with ~270000 commits in < 1hr on the right H/W ;-)

Documentation is a bit lacking, but basically you need to create one file 
containing the description of the repositories, and one with the names/emails 
of the svn login names, and you are ready to start ./svn-to-git.sh.  
Description files I used for the ooo-build and OOo conversions are included.

So - if you are interested, and have a SVN repository to convert, give it a 
try.  And if you have patches, please send them to me :-)

Regards,
Kendy

[1] http://cgit.freedesktop.org/ooo-build/ooo-build
[2] http://cgit.freedesktop.org/ooo-build except ooo-build, website and 
contrib/
[3] from http://repo.or.cz/w/fast-export.git
[4] http://www.go-oo.org
--
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]