magesync

Goals

  • Shared 3rd party modules
    • take advantage of git submodules
  • Shared Magento core
    • Share patches and bug fixes
    • "simplified" upgrades
  • Separation of project files
    • smaller git repository

Directory Structure

Name Details
core/ git submodule to CE or EE core
modules/* git submodule or directory containing 3rd party modules
site/ project specific files
merged/ combined output directory

Structure Sample

    .
    |-core
|--app/code/core/Mage |-modules |--Aoe_Scheduler/app/code/community/Aoe/ |--UniversalVariable/app/code/community/QuBit |--SMTPPro/app/code/community/Aschroder |-site
|--app/code/local/Sevenly
|-merged
|--app/
|---code/
|----core/Mage/
|----community/
|-----Aoe/
|-----Aschroder/
|-----QuBit/
 |----local/
|-----Sevenly/

DEV

vs

Production

Synchronizing DEV

dev_vagrant beeplogic$ magesync
 The following directories will be watched :
  /Users/beeplogic/Projects/dev_vagrant/data/modules/Aoe_Scheduler
  /Users/beeplogic/Projects/dev_vagrant/data/modules/SMTPPro
  /Users/beeplogic/Projects/dev_vagrant/data/modules/UniversalVariable
  /Users/beeplogic/Projects/dev_vagrant/data/core
  /Users/beeplogic/Projects/dev_vagrant/data/site  

OS X: FSwatch

Linux: inotify-tools


Production Builds

rsync

 mkdir merged/
rsync -crvt --exclude 'var/' core/ merged/
find modules/ -maxdepth 1 -mindepth 1 -type d -exec rsync -crvt --exclude 'var/' '{}/' merged/ ';'
rsync -crvt site/ merged/
rm -rf merged/media

Known Issues

  • Messy code base, needs to be cleaned up
  • Certain git operations aren’t handled correctly

magesync

By beeplogic