Monday, June 15, 2009

OOo KDE4 Integration

Thanks to the heroic efforts of Éric Bischoff, Bernhard Rosenkränzer, and Roman Shtylman, the OpenOffice.org KDE Integration has been ported to KDE4. It still has some rough edges (currently the detection does not work out of the box—you have to export OOO_FORCE_DESKTOP=kde4 to get it), but it is safe because it co-exists nicely with the existing KDE3 integration; so if you are not satisfied, you are able just swich back to KDE3 (export OOO_FORCE_DESKTOP=kde).

For KDE4, Roman is also changing the out-of-process implementation of the KDE file picker to an in-process implementation, so you'll probably notice some performance improvement of the KDE file dialog launch too :-)

Guys, thank you!

Monday, June 8, 2009

Yet another SVN to git conversion tool

Recently I needed to convert the ooo-build repository from the Gnome SVN to git, and also create a regularly updated git mirror of the OpenOffice.org SVN repository. Unfortunately I did not find a tool that would suffice my needs - git-svn was unable to handle more branches, and svn-all-fast-export 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:

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 :-)

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 :-)