d.o packaging has improved pretty dramatically since these projects were merged into hostmaster. I can only assume that there's some Git magic to preserve the history of these components, and make back-porting fixes from 6.x-2.x to 6.x-1.x not too painful.

This is required in order for custom Profiler sub-profiles to work, which I've been able to confirm works based on the recent patches I've submitted. If we don't implement Profiler, it would still be *much* easier to maintain a fork of hostmaster, if it didn't bundle in all the rest of the front-end.

Comments

joestewart’s picture

something like:

git filter-branch --subdirectory-filter themes/elder HEAD -- --all

But I believe it would need tweaking to preserve the right release tags.

http://stackoverflow.com/questions/359424/detach-subdirectory-into-separ...

joestewart’s picture

Adding a couple more links:

http://drupal.org/node/1433406 - Migrating a subfolder from one project to another while keeping its full history (commits, tags, ...)
http://svendecabooter.be/blog/how-to-migrate-part-of-a-drupal-project-to...

ergonlogic’s picture

I think using a subtrees merge strategy should make backporting fixes from Hosting 6.x-2.x back to Hostmaster 6.x-1.x pretty easy.

Steven Jones’s picture

Version: 6.x-2.x-dev » 6.x-1.x-dev
Status: Active » Needs review

Anarcat would there be any issues with doing this split in the 6.x-1.x release series? Guessing this would complicate the release procedure for hostmaster slightly, but we could script that right?

I think I'm in favour of splitting up as much as possible, as it's great from a developer perspective, but for end users just installing and using Aegir, we should direct them to the Community site and the hostmaster project. The hostmaster/provision split is already confusing for some, so we should just make the components visibly distinct, but tell people that they don't need to worry about that, and just file issues against hostmaster.

ergonlogic’s picture

We chatted about this a bit in #aegir.

Note also #1479280: Give Steven Jones commit access issue against Eldir.

anarcat’s picture

Note that I have done this before, and I could do the reverse again, no problem, so #1479280: Give Steven Jones commit access is not a blocker.

The reason for merging all this in the same project is that we were tired of creating all those release nodes, and this is still an issue. See #1050618: Publish release nodes with tag message from corresponding Git tag.

Also, the scripting right now doesn't cover tagging of the hostmaster module - maybe that could be changed, but that feels a bit flaky.

Steven Jones’s picture

Version: 6.x-1.x-dev » 6.x-2.x-dev

Shall we try to do this in 6.x-2.x?

anarcat’s picture

Yes, let's. Here's the roadmap I see:

  1. re-import the eldir/hosting history in their git repositories
  2. update the 2.x makefiles to fetch those modules
  3. fixup the release documentation to push new tags on release

Note that the original problems we noted are still present and we'll need to be prepared to deal with the crap:

I'll try to deal with this shortly on the 2.x branch (only!!!). 1.x stays merged.

anarcat’s picture

So for eldir, I did this:

git clone hostmaster eldir
cd eldir/
git tag -l | xargs git tag -d
git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter themes/eldir/ HEAD
git update-ref -d refs/original/refs/heads/6.x-2.x
git remote rm origin
git reflog expire --expire=now --all
git gc --aggressive
git prune
git remote add origin anarcat@git.drupal.org:project/eldir.git
git fetch origin

Then I tried all sorts of rebase incantation to try to reconnect the old history with the new. I would always fail at some point.

The best I could do was with git rebase -m -p --onto 2987445 dffd88e 6.x-2.x

Then I would get conflicts on style.css, because the "great git migration" kicked in *after* we moved out of drupal.org (and coincidentally enough, we lost the old git repos of eldir). That can easily be solved. The other merge problem was a weird failed merge in 0574070a5ae41e2d3979f57b4d59a4207661475e. That can also be solved. But then cherry-pick itself explodes, probably a bug in rebase itself... Here's the whole transcript:

anarcat@marcos:eldir$ git rebase -m -p --onto 2987445 dffd88e 6.x-2.x
error: could not apply d512f2b... merge eldir in hostmaster

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
Could not pick d512f2b30b262744a2f1cb4f70a4fc5e94b844d8
anarcat@marcos:eldir$ git co --ours ie6.css style.css template.php eldir.info
anarcat@marcos:eldir$ git add ie6.css style.css template.php eldir.info
anarcat@marcos:eldir$ git rebase --continue
Auto-merging style.css
CONFLICT (content): Merge conflict in style.css
Automatic merge failed; fix conflicts and then commit the result.
Error redoing merge 0574070a5ae41e2d3979f57b4d59a4207661475e
anarcat@marcos:eldir$ git co --ours style.css
anarcat@marcos:eldir$ git add style.css
anarcat@marcos:eldir$ git rebase --continue
error: Commit bea52a0671af0e89efca298ef0a707979d087416 is a merge but no -m option was given.
fatal: cherry-pick failed
Could not pick bea52a0671af0e89efca298ef0a707979d087416
anarcat@marcos:eldir$ git rebase --abort
anarcat@marcos:eldir$

At that point, we're pretty much screwed. So I gave up (--abort, above). I have just pushed the disconnected branch directly, and to hell with it.

anarcat’s picture

Oh and btw, if we want to reconnect the history, we may try a graft point but at this point... screw that. :)

anarcat’s picture

Title: Split Hosting and Eldir back out to their respective stand-alone projects » Split Eldir back out to their respective stand-alone projects
Project: Hostmaster (Aegir) » Eldir
Version: 6.x-2.x-dev » 6.x-0.4-alpha3
Status: Needs review » Fixed

this is now done. to quote the commit in hostmaster:

commit efa5850489ebc500ee67e937cc38875effacc824
Author: Antoine Beaupré <anarcat@koumbit.org>
Date:   Fri Feb 8 14:09:50 2013 -0500

    move eldir back into its own module

    this decouples the releases of core from aegir, the same way we do
    (e.g.) with hosting_platform_pathauto.

    the logic here is detailed in #1468874, but basically, eldir is
    updated less frequently than other modules, so it's less likely to
    have frequent updates. also, splitting it out will allow the theme to
    be used by non-aegir installations, and facilitate the D7 port.
anarcat’s picture

Version: 6.x-0.4-alpha3 » 6.x-2.0-alpha1
anarcat’s picture

Title: Split Eldir back out to their respective stand-alone projects » Split Eldir back out to a stand-alone project

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.