• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Elias Interactive

We Grow Beautiful Websites

  • Blog
  • Show Search
Hide Search

magento development

Magento SVN Usage – Best Practices

Eric Clark · Aug 19, 2013 · 9 Comments

In this article we talk about best practices around using Subversion (SVN) with Magento to help you maximize its many benefits. Anyone who works with Magento Platform will be interested in this easy to understand capabilities and benefits overview of Magento SVN. Whether you’re a store owner or a developer, SVN can make your life easier.

Quick Summary

  1. High-level explanation of SVN
  2. Who should use SVN?
  3. Why it should be used?
  4. Specific things to watch out for with Magento & SVN
  5. Bonus: Tools for the Trade

SVN-Environment Relationships

1. High-level explanation SVN

SVN (aka Subversion) improves the development process. Its an evolution of CVS (aka Concurrent Versions System) which allows developers to maintain local, staging, and production environments. It’s best practice for most software development (and Magento) projects to utilize some type of version control system. Git is worth noting as an alternative to SVN. The main difference being that Git stores everything locally whereas SVN stores things on a repository hosted on a centralized server where all updates are pushed and pulled. Typically people either prefer SVN or Git, both have good reasons and arguments. But for the purposes of this article, though, we are laser focused on Magento SVN usage and not so much the argument between which is better to use.  Server management is not one single thing that you do, but depends on what you use the server for, and whether you have a virtual server, or a physical server. Go through servermania.com/server-management site for more details about server management services. Server management often consists of business continuity planning. In business continuity planning many people feel that virtual servers are easier to with than physical servers are. The problem with this type of Linux server management is that there are times when you would need to patch multiple systems together and when using virtual servers this can be problematic.

Consistency is one of the key elements in Linux server management. In order to have consistency in your Linux server management you will need predefined configuration parameters for all of the application servers and the database servers to follow. If you are using virtual servers to do your work with you are going to find that maintaining the configurations and keeping them completely up to date will be more important than it would be on a physical server.

Before server management can be performed accurately you have to decide what your server is going to need to be capable of doing.

• You need to determine the amount of up-time and down-time that you would find acceptable in your system.
• You must decide how many other servers will eventually connect to the one you are developing so you can set protocols on how to expand the system in the future.
• You must decide if you need a physical server that you can adjust or if you could possibly work with a virtual server
• You need to decide if you can do your management procedures for yourself or if you will need to hire a professional company to manage this part of your operation for you

There are excellent online tools and resources available to help you program, manage, and incorporate new procedure protocol into your servers. You have to be willing to learn the ropes, and use the guidelines available to you. Remember that those guidelines were established through the trials and errors of people that used the system before you so they are going to save you from making costly mistakes in the future.

Simply put, SVN is a tool that keeps a revision history of code over a period of time. You keep project code located within the repository and pull a copy of the entire code with one simple command. As people work on the project, updates to the code are committed to the repository, which allows anyone who is “linked” to the repository to sync their code with the latest changes via one click of a button. A simultaneous, multi-user environment is organized for team-based development and proper administration.

There are an incredible number of benefits to SVN… too many to mention here.

2. Who should use SVN?

Everyone who works with Magento should use SVN. As a rule of thumb, SVN should be used in any significant software development project (unless you use Git as an alternative).

3. Why SVN should be used?

SVN allows multiple developers to build simultaneously in an organized fashion with a detailed history of the progress. This ensures that the live storefront (production environment) is always intricately cared for and remains “open for business”. There’s nothing worse than an outage in the eCommerce world and using SVN with Magento helps you to hedge against such events as it relates to your code. Every developer has experienced early on in their career the inevitable mistake of removing a file via FTP, only left to realize that file is lost in space and no longer retrievable. Thanks to SVN, you will be able to recover and restore this file in no time. The developer’s life becomes easier; and your eCommerce business is safer. When used properly, SVN ensures reliability, integrity, speed, and fall-back recovery.

4. Specific things to watch out for with Magento SVN

In our experience, there are a few specifics to watch out for when using SVN with Magento. Without getting too technical, here are a few things we’ve learned along the way:

  • Watch out for the caching. Utilizing “SVN:ignore” is the key to allowing the local environment to cache correctly. I would recommend setting SVN to “ignore” for the following (at least) when maintaining separate environments:
    • /app/etc/local.xml (or use SVN lock instead for this)
    • /media/catalog/product/cache
    • /media/tmp/*
    • /var/cache/*
    • /var/report/*
    • /var/log/exception.log
    • /var/log/system.log
    • /var/locks/*
    • /var/session/*
    • /var/tmp/*
  • Create and execute test script. We’ve learned the hard way to stick to a quality test script as we merge different branches into the main SVN repository (used for production). Testing major changes in a staging environment prior to going “live” to production with the new changes can save a lot of heartache later on. Don’t underestimate testing your changes, especially with Magento’s complex architecture.
  • Create branches for project phases. Sometimes it helps to create a “branch” for each phase and a staging environment for each branch (assuming the project is large enough to call for it). This makes it easier to rollback and merge updates, if needed.
  • Keep the entire Magento directory maintained in SVN. Call us crazy, but we prefer to keep the entire Magento directory maintained via a SVN repository. We do this so that we can upgrade, modify, and perform other changes locally prior to streamlining the changes to the staging and production environments.

5. Bonus: Tools of the Trade

We fancy apps that make our lives easier. Who doesn’t? We invest a lot of time researching and trying out new apps to see how well they fit our business. So far we have found a few SVN tools that are worth mentioning. Note: some of these are Apple-specific.

  • VersionsApp: A high-quality desktop application that allows one to manage repositories locally for streamlined management of code.
  • BeanstalkApp: A sweet as online SVN storage service to host repositories full of code, revisions, and a great interface for management.
  • Coda App: A quality code editor that integrates with SVN
  • TextMate: Another quality code editor with SVN integration
  • MAMP: A personal Mac server with Apache, Mysql and PHP
  • VirtualHostX: A virtual hosting utility that works well with MAMP
  • VirtualBox: A sweet virtualization product to run multiple operating systems
  • Spoon.net: A browser-compatibility testing tool

Those of you who are already familiar with SVN know that there is obviously much more to rave about. This post is intended to be a simplified “business use-case” for Magento SVN usage and explain why it is a Magento best practice. Please chime in in the comments below with other suggestions for everyone to benefit from!

MVC: Magento beginner resources

Josh Colter · May 21, 2010 · 4 Comments

It’s easy to take for granted that everyone “gets it.” If you’re a Magento expert then this post is beneath you. Move along.

But if you work with clients or users who aren’t at your level of coding genius, you might want to bookmark a couple of resources to make your life easier for when you get questions. Sometimes it’s good to teach the basics so that we’re all on the same page.

Model View Controller

MVC, which stands for “model view controller”, is a common framework for web development. You need to understand MVC to grasp how Magento is put together. Rather than try to fumble my way through an explanation of MVC, I’ve included a couple of good resources below.

MVC components

MVC Explained

  • Nettuts featured a MVC guide for novices last month written by Pablo Pastor
  • phpro.org offers a more in-depth how-to guide for the MVC framework

So why does any of this matter? Magento is feature-rich and complex. Half of setting a store owner up for success involves educating them. Give someone a sophisticated tool without explaining how it works, and they’ll think that it’s junk because it isn’t useful to them. But teach a man to fish…, eh, you get the picture.

Magento Service Packages Design

Josh Colter · Oct 13, 2009 · Leave a Comment

Estimating service pricing on a client-by-client basis can be difficult and time-consuming. It’s risky for the service provider because they invest time before receiving a commitment from the client. And clients can get annoyed when they have no expectation for cost early in the relationship.

Houston, we have a problem

Elias faces this tension on a daily basis. Let’s say we receive an estimate request with project description from a new potential client. Ok, now what? We try to get more information. The potential client is trying to understand price. And agency partners want a faster way to incorporate Elias development costs into their bids for client Magento ecommerce opportunities. So I created packaged services to frame scope and help clients see the effects of feature configuration/development on price.

Solution (v1)

  • Package services for typical client requests to quickly set expectations for scope and budget.
  • Reduce package variation to minimal number of factors.
  • Establish a conversational starting point when discussing a project with a new client.
  • Make the purchase decision easier for clients.
  • Distill scope differences between packages into an easy to consume format.

Result (v1)

Packages v1
Packages v1

While this initial version of our Magento service packages did set expectations for scope and budget upfront, it failed on multiple levels of design:

  • The pricing was not simple.
  • Awful borders held the table captive.
  • Don’t even get me started on my poor original names

When you look for presentation designer make sure they understand your industry. If you are curious about how a corporate presentation design can take Microsoft Word documents and turn them into amazing presentations, it is because Presentation Experts strive to understand our customers so that we uncover every need and help support our customers every step of the way.

Solution (v2)

Tyler Tate recently featured a fantastic article in Smashing Magazine about minimizing complexity in user interfaces. He illustrated one of his points with a pricing chart from Typekit. Their example gave me the inspiration I needed to create version 2 of Elias’ packages:

Result (v2)

Packages v2

Lesson: Why Team Conflict is Good

Josh Colter · Jul 22, 2009 · 2 Comments

We recently met with a potential partner who is admittedly clueless about Magento development and has a project that keeps dragging on. He asked us to step in to help.  Being the sales guy that I am, I was ready to jump right in.  Being the responsible developer that he is, Lee was hesitant to even be a part of the discussion.  We both felt some rub with the approach.

The great part about healthy teams is that a foundation of trust and respect makes it easier for conflict to lead to a better outcome than any individual could arrive at on their own.  In our case, Lee’s concern slowed down the conversation and made for a very healthy reality check with the partner .  After a quick conversation with his client, the partner modified the project scope to something more realistic and asked us to throw together an estimate for it.  Not only will we create an immediate benefit for the partner by finishing the project and creating cashflow, we will also built a solid relationship with this partner who likes us and will most likely choose to work with us on future Magento stores.

I am convinced that this type of interaction would not have happened even 2 months ago.  This is the sort of trust and mutual respect that is developed over time.  If you are looking for this type of team to interact with for your Magento store, theme, customization, or module then we would be happy to speak with you.  Just drop us a message on this form and we’ll be in touch.

Open Source Infiltrating Enterprise Marketplace

Josh Colter · Jul 7, 2009 · Leave a Comment

Open Source is infiltrating the Enterprise marketplace.  O’Reilly radar featured an interview today with Jeffrey Hammond of Forrester Research on the topic.  We have been bumping into more enterprise clients in Magento-land here at Elias and were recently approached about writing a Magento-for-enterprise book.  This leads me to believe that Hammond’s insight is becoming increasingly relevant for Magento. With that in mind, one of Hammond’s answers is very important to understand for those enterprise retailers who might be considering the wonderful world of open-source with Magento:

James Turner: Just to be balanced, what are some of the perils that companies need to watch out for when they start to adopt open source?

Jeffrey Hammond: I’ll tell you: The number one peril that I run into is an overinflated set of expectations. And it usually goes something along the lines of, “Well, we’re going to dramatically reduce our software costs.” And there are some scenarios where that can happen. But in reality, what open source does, especially at the start, is it tends to shift your software costs. So, yes, you’re reducing the capital expenses and expenditures that you are paying for software bits and bytes. But, in most cases, firms that are starting with open source are still buying support contracts from organizations.

Given the typical expense for ecommerce systems, an enterprise etailer will still come out way ahead in the switch to Magento.  But it is important to note that the spending shifts from software costs to labor cost.  This is why it is imperative to work closely with your selected development team on the front end of a project to map out a solid solution.  As our lead developer at Elias, Lee, likes to say, “We want to have this project won before we get started.”

  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to Next Page »

Primary Sidebar

From the blog

Magento SVN Usage – Best Practices

How to Create Reusable Apple Mail Templates [video]

I’d rather buy from Harry Potter

The Ecommerce Solution You’ll Find Refreshing (drumroll)

Liberating Constraints

More Posts

Connect with us

  • Facebook
  • RSS
  • Twitter
Affiliate Disclaimer

© 2025 · Elias Interactive · Built on the Genesis Framework

  • Blog
  • Affiliate Disclaimer
  • Home