Multimedia/Move to Git: Difference between revisions

From KDE Community Wiki
m (→‎KMix problems: formatting)
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page describes the move of kdemultimedia from SVN to Git.
This page describes the move of kdemultimedia from SVN to Git.


<!--
== History ==
== 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.}}
{{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. 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).
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 [http://wm161.net/2012/03/28/kde-multimedia-moves-to-git/ 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.
On March 28th, Trever [http://wm161.net/2012/03/28/kde-multimedia-moves-to-git/ 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.
Line 11: Line 10:


Since then, there has been slow but reasonably steady work to improve the conversion rules.
Since then, there has been slow but reasonably steady work to improve the conversion rules.
-->


== Work done ==
== Work done ==
Line 18: Line 15:


* Reuse common code that was written for past conversions, fixing several issues.
* 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 {{SVNCommit|409205}}, which messed up most branches and tags.
* Added the old <tt>libkcompactdisc</tt> history from when it was a part of <tt>kscd</tt>.
* Export documentation in version branches.
* Export documentation in version branches.
* Ignore problematic commits such as [http://websvn.kde.org/?view=revision&revision=409205 r409205], which messed up most branches and tags.
* Export several app-specific work branches.
* Export <tt>kmainwindow-decoupling</tt> work branch (rule was already there but incorrect).
* Added parentmaps to synthesize branch merges.
* Export <tt>phonon-solid-sprint</tt> branch in <tt>libkcompactdisc</tt>.
* Nearly rewrote the audiocd-kio rules to catch all the history correctly.
* Export <tt>kfilemetainfo</tt> branch in <tt>strigi-analyzers</tt>.
* Added the old <tt>libkcompactdisc</tt> history from when it was a part of <tt>kscd</tt>.


== Progress ==
== Progress ==
Line 30: Line 28:
|-
|-
| style="width:10em"| audiocd-kio
| style="width:10em"| audiocd-kio
|  
| Complete!
|-
|-
| dragonplayer
| dragonplayer
Line 39: Line 37:
|-
|-
| juk
| juk
| Parentmap mostly done, currently working to get some more history
| Complete (or so it seems... juk is a big one, so I'm skeptical)
|-
|-
| kmix
| kmix
Line 59: Line 57:
| Complete
| Complete
|}
|}
== 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.
== KMix problems ==
The early history of KMix is complicated.
* {{SVNCommit|1499}} is the initial addition of KMix code.
* {{SVNCommit|47578}} added a rewrite called <tt>kmix2</tt>, into a separate directory.
* {{SVNCommit|50715}}/{{SVNCommit|50716}} deleted the original <tt>kmix</tt>. At this point there is only a <tt>kmix2</tt> directory.
* {{SVNCommit|52199}} re-added the <tt>kmix</tt> directory. I'm not sure what code is this, it seems to be an invalid mixture of <tt>kmix2</tt> and the old <tt>kmix</tt>. Presumably only the first edit of each file?
* {{SVNCommit|52201}} updated the contents of the <tt>kmix</tt> directory to actually match what was in <tt>kmix2</tt> (<tt>kmix@52201</tt> and <tt>kmix2@52201</tt> only differ in the <tt>pics</tt> subdirectory). Probably <tt>52199</tt> should be ignored/deleted and <tt>52201</tt> pretended to be the actual addition.
* {{SVNCommit|52202}} deleted the kmix2 directory.
The problem is with documentation. During all this moving around, the documentation stayed in <tt>trunk/kdemultimedia/doc/kmix</tt>, even during periods where there were two simultaneous kmix branches in progress.

Latest revision as of 17:02, 2 May 2012

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.
  • Nearly rewrote the audiocd-kio rules to catch all the history correctly.

Progress

Repository Status
audiocd-kio Complete!
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

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:

  1. 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.
  2. Migrate now with crappy conversion of KMix early history and be stuck with it forever.
  3. Migrate now with crappy conversion of KMix early history, fix it later (would need a force-push).
  4. Migrate everything to git except KMix, which stays in SVN until the rules are ready.

KMix problems

The early history of KMix is complicated.

  • r1499 is the initial addition of KMix code.
  • r47578 added a rewrite called kmix2, into a separate directory.
  • r50715/r50716 deleted the original kmix. At this point there is only a kmix2 directory.
  • r52199 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?
  • r52201 updated the contents of the kmix directory to actually match what was in kmix2 (kmix@52201 and kmix2@52201 only differ in the pics subdirectory). Probably 52199 should be ignored/deleted and 52201 pretended to be the actual addition.
  • r52202 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.