Jump to content

Multimedia/Move to Git

From KDE Community Wiki

This page describes the move of kdemultimedia from SVN to Git.

History

Note

This section attempts to briefly describe how we got to the current situation. It's not intended to be an accurate historical account, and probably isn't. Don't place blame on anyone, especially if you rely on the contents of this incomplete text.

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.

Work done

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 r409205, 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.

Progress

Repository Status
audiocd-kio There are two complexities: the kdebase history, and being one subdirectory deeper than the rest. May have to stop using kdemm-common. Not hard, just tedious.
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
kscd Complete
libkcddb Complete
libkcompactdisc Complete
mplayerthumbs Complete (no parentmaps needed)
strigi-analyzers Complete