This page describes the move of kdemultimedia from SVN to Git.
Trever Fischer worked on the svn2git conversion rules for kdemultimedia mostly alone since announcing plans in January 2012. Nicolas Alvarez, who helped with other repos and single-handedly converted others, didn't get as involved as he should have, because he was focusing on the migration of kdegames repositories (plus some real-life time-eaters).
On March 28th, Trever announced the move, and did the final conversion and push on April 4th. The next day, several problems were found with the repositories, including files that were entirely missing (causing build failures, the stable branch (KDE/4.8) not having the needed changes to let the repos build standalone, and several history problems.
Eike Hein was soon notified of the problem, and decided to lock the git repositories to prevent new commits done on them. He also sent an email to various mailing lists to notify about the locked repositories.
Since then, there has been slow but reasonably steady work to improve the conversion rules.
Here's a list of important changes in the rules since the “bad” conversion was done.
- Reuse common code that was written for past conversions, fixing several issues.
- Simplify several rules and remove others that weren't needed, for faster conversions.
- Ignore problematic commits such as , which messed up most branches and tags.
- Added the old libkcompactdisc history from when it was a part of kscd.
- Export documentation in version branches.
- Export several app-specific work branches.
- Added parentmaps to synthesize branch merges.
- Nearly rewrote the audiocd-kio rules to catch all the history correctly.
|dragonplayer||Complete, no parentmaps needed, nothing else needed unless I'm crazy enough to import the codeine tarballs.|
|ffmpegthumbs||Complete (no parentmaps needed)|
|juk||Complete (or so it seems... juk is a big one, so I'm skeptical)|
|kmix||Really complex stuff in early history, may take a while to get right|
|mplayerthumbs||Complete (no parentmaps needed)|
Feature freeze problem
While the repositories were unusable, there was interesting development done on scratch repositories, implementing MPRIS2 for DragonPlayer and JuK. In order to get into KDE 4.9, this code needs to be in the real repositories before the feature freeze on May 3rd. Therefore the repositories should be done before this date.
I'm not optimist that the KMix rules can be finished by that date. The options would be:
- Migrate when it's done, miss the may 3rd deadline. Request a feature freeze exception or live with MPRIS2 not getting into DragonPlayer and Juk for 4.9.
- Migrate now with crappy conversion of KMix early history and be stuck with it forever.
- Migrate now with crappy conversion of KMix early history, fix it later (would need a force-push).
- Migrate everything to git except KMix, which stays in SVN until the rules are ready.
The early history of KMix is complicated.
- is the initial addition of KMix code.
- added a rewrite called kmix2, into a separate directory.
- / deleted the original kmix. At this point there is only a kmix2 directory.
- re-added the kmix directory. I'm not sure what code is this, it seems to be an invalid mixture of kmix2 and the old kmix. Presumably only the first edit of each file?
- [email protected] and [email protected] only differ in the pics subdirectory). Probably 52199 should be ignored/deleted and 52201 pretended to be the actual addition. updated the contents of the kmix directory to actually match what was in kmix2 (
- deleted the kmix2 directory.
The problem is with documentation. During all this moving around, the documentation stayed in trunk/kdemultimedia/doc/kmix, even during periods where there were two simultaneous kmix branches in progress.