control system. Git has a tiny footprint with lightning FAST performance and features like cheap local branching, convenient staging areas, and multiple workflows.
of the source code, you do a “clone” of the entire repository. This means that even if you're using a centralized workflow, every user essentially has a full backup of the main server.
should not be shared without permission. A .gitignore files tells Git which files to ignore These files don’t get pushed into the repository Sample: .DS_Store uploads .sass-‐cache IGNORING FILES
should not be shared without permission. Make changes on your machine Push to staging server for the client to verify Easily rollback if necessary Multiple developers Work in branches Never open FTP again DEVELOP LOCALLY
should not be shared without permission. Private GitHub repo DB dump in repo Single config.php database.php for each environment (auto generated) BASE INSTALL
should not be shared without permission. The most complicated piece (with any app) You want your development environment to match as close as possible to production Once the site is live, all structural DB changes happen on production and “sync” down THE DB
should not be shared without permission. A “development” server that the client can access Server provisioning from a “recipe” LAMP stack Git, rake, etc. Uses the chef gem to create a server using the Rackspace Cloud API It’s for real some black magic STAGING
should not be shared without permission. Develop site locally Provision staging server Push to staging Client enters all content on staging PRE-LAUNCH FLOW
should not be shared without permission. Provision production server Copy DB from staging to production All further content/DB changes happen on production LAUNCH
should not be shared without permission. Staging becomes an area to preview new features All changes get pushed from development to staging, then to production All DB changes flow “down” POST LAUNCH
should not be shared without permission. Clone EE base repo (local) bundle install (local) rake setup (local) Provision staging server Add environment to config.yml Provision production server Add environment to config.yml THE WHOLE PROCESS
should not be shared without permission. Clones repo Creates shared directories and sets permissions Avatars, captchas, etc. Upload destinations Creates database.php Imports DB CAP SETUP
should not be shared without permission. Needs tasks to: Copy DB from remote to local Copy DB from local to remote (rare) Copy content from remote to local Clear CE Cache Clear Stash Cache BACK TO THE DB