Before I ask this I realize the answer is going to be different for everyone, but I think that the majority of magento pro's will have some amount of common ground on this.

What is the ideal workflow for magento development using an IDE and SVN?

Up to this point I have been using sublimeText and manually uploading files into the working copy, then once tested, I commit. We are now starting to use PHPstorm with SVN integrated, but the problem I see is how do you test code without committing? If you commit a change and it doesn't work then what? Revert?

  • The question on everyone's mind: why SVN and not Git?
    – benmarks
    Feb 21, 2015 at 15:00
  • I have no idea, I'm just a dev so I have no say in what we use. Feb 23, 2015 at 19:47
  • 2
    "I'm just a dev so I have no say in what we use" - that seems terribly unfortunate :-(
    – benmarks
    Feb 23, 2015 at 19:49

2 Answers 2


As you yourself already said, this is different for every developer/company. I can tell you what the set up is that we're using at my company.

  • We are also using PHPstorm as IDE (with Magicento plugin) and we are using GIT instead of SVN.
  • We all have a local work station with Ubuntu and running all projects on our local machine.
  • We all have forked the project's repositories and make branches for every task we perform. We are committing our changes directly after testing on our local environment.
  • Then we will create a pull request (using Atlassian Stash) which will be reviewed by another developer. After that it will be merged into the main repository.

I have used SVN before, but I cannot recall if a workflow like this is possible in SVN.

  • That's basically what I was thinking as well, but how do you manage all the databases since they're not held in git/svn? Does each workstation run their own database? What if you're working with code that needs to run a query to work? Now you have a disconnect between the dev db and production. Feb 20, 2015 at 22:14
  • @AlexChastain, your comment holds a complete new question. Questions like this have already been asked, so check these one to see if you can find your answer there: magento.stackexchange.com/questions/9835/… and magento.stackexchange.com/questions/252/…
    – 7ochem
    Feb 23, 2015 at 8:11

I hope not to get downvoted because I can't comment, but I wouldn't consider this a concise answer.

Do you not have a development environment separate from production? The way we do it here (albeit using git):

I use Netbeans, but I'm trying out phpStorm.

  • Development environment with VCS (master, dev, feature1, feature2)
  • Production environment with VCS (master)

The "master" branch on production mirrors the "master" branch on dev.

  • Each day, pull from development dev branch to local.
  • Create a new branch (if needed). Make changes. Commit these changes to development, then push to development.

From here we can see all the changes in a development environment that perfectly mirrors our production (live) environment.

If these changes are approved:

  • Merge development (dev) branch into development (master) branch.
  • Push development (master) to production (master).

All of this can be done inside Netbeans (and phpStorm) using git post-receive hooks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.