New KMix version about to be checked in - a complete replacement of the source tree

Christian Esken esken at kde.org
Mon Aug 23 15:36:46 BST 2010


On Monday 23 August 2010 11:55:23 Colin Guthrie wrote:
> 'Twas brillig, and Christian Esken at 22/08/10 23:40 did gyre and gimble:
> > On Tuesday 22 June 2010 21:06:04 Christian Esken wrote:
> >> Hello,
> > 
> > I have a "completely new" KMix version to check in. "Completely new" is
> > referring to two facts: - A lot of cleanup
> > 
> > -The sourcefiles are distributed in completely new directories, namely:
> >   apps/
> >   core/
> >   gui/
> >   backend/
> >> 
> >> [1] The work branch is /branches/work/kmix/. If you have changes for
> >> KMix, especially bugfixes, please let me know, so that I can integrate
> >> that in the work branch.
> > 
> > I didn't receive any changes, thus i will "replace" the trunk source tree
> > by my work branch without having to act with caution. I will have enogh
> > trouble with SVN tree conflicts, I fear.  Any good advice on handling
> > SVN tree conflicts are highly appreciated. Anyone?
> 
> Well, personally I would have used git-svn rather than an svn branch as
> that way you can "rebase" your changes to the trunk version and then
> "dcommit" the results any time.
> 
> While it results in a "commit flood" it's a good way of keeping the
> history of the changes in the mailing trunk commit log rather than lost
> in a branch.
 
> Theoretically you can still use git svn quite easily by importing the
> branch svn to git at the point it was branched, pulling in all the changes
I have not yet worked with git. But lets try. That would be http://websvn.kde.org/view=revision&revision=1129222

# --- Clone ---------------------
# git svn clone -r 1129222 svn+ssh://esken@svn.kde.org/home/kde/branches/work/kmix
Initialized empty Git repository in /SVN/git-checkout/kmix-work/kmix/.git/
        A       osdwidget.h
[...]
        A       mixer_pulse.cpp
r1129222 = ca5aa67b7662e9158831a7c582c338389940f19a (refs/remotes/git-svn)
Checked out HEAD:


# --- Create patches ---------------------
# git svn rebase svn+ssh://esken@svn.kde.org/home/kde/branches/work/kmix
# git format-patch -o ~/kmix_workbranch_git.diff -M -C ca5aa67b7662e9158831a7c582c338389940f19a
# ls -l ~/kmix_workbranch_git.diff/
total 644
-rw-r--r-- 1 kde users 16414 Aug 23 16:02 0001-Add-a-KMix-kded-Service.patch
[...]
-rw-r--r-- 1 kde users  8466 Aug 23 16:02 0040-Bugfixes-for-hotplugging-and-closing-tabs.patch




# --- Apply patches  (this is where things go wrong) ---------------------
# git svn clone  svn+ssh://esken@svn.kde.org/home/kde/trunk/KDE/kdemultimedia/kmix
Initialized empty Git repository in /SVN/git-checkout/kmix_trunk/kmix/.git/
[...]
        M       Messages.sh
r1166369 = d9a1d1e1919e4b095386a4c3d92981c91255c750 (refs/remotes/git-svn)
Checked out HEAD:
  svn+ssh://esken@svn.kde.org/home/kde/trunk/KDE/kdemultimedia/kmix r1166369
# cd kmix


# git am /home/kde/kmix_workbranch_git.diff/00*
error: cannot read mbox /home/kde/kmix_workbranch_git.diff/0012-Ignore-obj-and-Eclipse-.project-files.patch
error: cannot split patches from /home/kde/kmix_workbranch_git.diff/0012-Ignore-obj-and-Eclipse-.project-files.patch
kde at firefly:/SVN/git-checkout/kmix_trunk/kmix> ll /home/kde/kmix_workbranch_git.diff/0012-Ignore-obj-and-Eclipse-.project-files.patch
-rw-r--r-- 1 kde users 0 23. Aug 16:02 /home/kde/kmix_workbranch_git.diff/0012-Ignore-obj-and-Eclipse-.project-files.patch

Oops, there are 2 empty patch files. After removing them, and cloning again, it seems to completely fail:

# git am /home/kde/kmix_workbranch_git_fixed.diff/*
Applying: Add a KMix kded Service
/SVN/git-checkout/kmix_trunk/kmix/.git/rebase-apply/patch:52: trailing whitespace.
#include <kaboutdata.h> 
/SVN/git-checkout/kmix_trunk/kmix/.git/rebase-apply/patch:69: trailing whitespace.
#include <kpluginloader.h> 
/SVN/git-checkout/kmix_trunk/kmix/.git/rebase-apply/patch:102: trailing whitespace.
                         
/SVN/git-checkout/kmix_trunk/kmix/.git/rebase-apply/patch:107: trailing whitespace.
        KUniqueApplication app; 
/SVN/git-checkout/kmix_trunk/kmix/.git/rebase-apply/patch:111: trailing whitespace.
  
error: patch failed: CMakeLists.txt:68
error: CMakeLists.txt: patch does not apply
Patch failed at 0001 Add a KMix kded Service
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".


Even if I try the next patches via "git am --skip", I nearly always receive error messages:

Applying: Remove all unneccesary explicit or implicit spacing (the default of 11 pixels of contents margin is simply way too much for the usage in KMix).
error: core/version.h: does not exist in index
error: gui/mdwslider.cpp: does not exist in index
error: gui/viewsliders.cpp: does not exist in index
Patch failed at 0028 Remove all unneccesary explicit or implicit spacing (the default of 11 pixels of contents margin is simply way too much for the usage in 
KMix).



> then git am'ing all the patches, fixing any (likely minor) conflicts
> that result and then dcommitting the result to svn trunk.
> 
> It's a bit of effort to go to but it's not super hard. I'd be willing to
> try and do it on your behalf if you like. I can then push the git tree
> out or give you exact instructions on how to commit the end result, so
> that authorship is properly maintained.

I got stuck. If you could give me instrauctions, I would be very happy.

The most important part for me is that I do not lose SVN history from trunk, even though I moved all source files to new directories. Keeping the history from my 
branch would be an extra, but not required.

  Christian



More information about the kde-multimedia mailing list