* Ingo Molnar <mi...@kernel.org> wrote:

> Oh, that's a pleasant surprise, I didn't expect _100%_ support! :-)
> 
> So I started working on this today and whipped up three of these 
> movements, in a 100% scripted fashion.
> 
> You can have a sneak preview at the result in this tree:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.core/toplevel
> 
>    ...
> 
>    2515 files changed, 42476 insertions(+), 42476 deletions(-)

I have pushed out a -v2 version:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.core/toplevel

   2523 files changed, 41304 insertions(+), 41302 deletions(-)

Changes relative to -v1:

 - Fixed a bunch of bugs that light testing and light review missed: 
   missed rename patterns and some build bugs as well. This tree has 
   passed much wider testing, including cross-platform build testing, a 
   distro kernel package build and it also got some light boot testing, 
   just in case.

 - Split it into finer grained steps (3 instead of 2 patches per 
   movement), for easier review and bisection testing:

     toplevel: Move ipc/ to kernel/ipc/: move the files
     toplevel: Move ipc/ to kernel/ipc/: adjust the build system
     toplevel: Move ipc/ to kernel/ipc/: adjust comments and documentation

     toplevel: Move sound/ to drivers/sound/: move the files
     toplevel: Move sound/ to drivers/sound/: adjust the build system
     toplevel: Move sound/ to drivers/sound/: adjust comments and documentation

     toplevel: Move samples/ to Documentation/samples/: move the files
     toplevel: Move samples/ to Documentation/samples/: adjust the build system
     toplevel: Move samples/ to Documentation/samples/: adjust comments and 
documentation

 - The changes are now bisection safe if the #1 ('move') and #2 ('build 
   system') patches are squashed. The final #3 'adjust comments and 
   documentation' patch is non-functional in the normal kernel build.
   I still kept the three steps separate, for reviewability: for many of
   the changes the build system changes are lost in the noise of the 
   file movement diff itself. (See patch-splitting notes further below.)

 - Made some of the build system changes less ad-hoc - but it's still all 
   100% scripted and automated. Added a SOB to the changelogs, but the 
   changelogs are still barebones. It's on top of Linus's latestest.

 - The longer term plan outlined in my first mail is still in flux - the 
   'scripts/' movement is probaly a bad idea due to its widespread use.

I'm still torn about whether to do a 3-part or 2-part approach for each 
directory movement:

 - The problem with the 2-part approach that merges the 'pure file move' 
   and 'build system' patches so that the latter gets lost in the first 
   one in an almost unreviewable fashion. Someone would have to re-do the 
   git mv step and generate a diff by hand to see the build system 
   changes in isolation...

 - The problem with the 3-part approach is that it breaks bisection 
   between the first two patches, although 'git bisect next' would always 
   step to a working commit, because the bisection build-breakage window 
   is only one commit wide.

So I'm slightly leaning toward the 3-part approach for the documentation 
and review value - but no strong feelings either way.

Anyway, I know everyone is super busy with the merge window, will keep 
posting new versions every now and then until you or Linus tells me not 
to bother :-)

Thanks,

        Ingo

Reply via email to