History | Last updated by David Eads, 17 months ago: Changed "an" to "a" in notice.

This project will likely be abandoned for different variation on this idea, which uses Mercurial subrepos and Drush make to build sites, without need for a custom Drush command.

fgcsync Drush command

We need an easy way for people working with our sandbox for educational projects to sync their work with the development server. Ultimate vision: That this would be part of a canned development environment available on VirtualBox disk image (vdi), or by downloading from an Ubuntu PPA hosted on launchpad.net.

First steps

  • Build out hg structure for some project and drush make file

fgcsync Drush module

Add two commands to Drush, fgcinstall and fgcsync. fgcinstall will pull an existing project from the FreeGeek repository, and grab the latest db dump, or create a new local project and send a notification to the administrator to create a new project (this doesn't have to happen right away). fgcsync will synchronize itself with the upstream development server, so that changes can be seen.

fgcinstall

fgcinstall <projectname>

  • One shot installer that calls drush_make
  • Sets up db (could be tricky)
  • Asks about username
  • Kicks off request to administrator to create a new project and grant access if none exists on the server
  • Populates .hgrc files with proper directories for push (potentially slow!)-- only needs to happen in parent hgrc though...

fgcsync

  • Guess projectname based on dirname or flag
  • Create and version DB dump -- (and add hg substate name to db dump name!)
  • Check for new modules -- add to Drush make? (optional)
  • Pushes all commits to server
  • Needs a messsage to go along with it

On server, we listen for a push to the db dump repository:

  • A new DB implies fresh code
  • Rebuild environment with drush load, etc...

Could drush to use Drush's db sync commands, but I think it is safer/better/easier to do it all server side.

History | Last updated by David Eads, 17 months ago: Changed "an" to "a" in notice.