<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Elias Interactive &#187; Magento Administration</title>
	<atom:link href="http://www.eliasinteractive.com/blog/tag/magento-administration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.eliasinteractive.com</link>
	<description>Ecommerce consulting &#38; solutions for online store retailers</description>
	<lastBuildDate>Thu, 01 Sep 2011 18:45:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SVN: Magento Best Practice</title>
		<link>http://www.eliasinteractive.com/blog/a-high-level-business-use-perspective-on-svn/</link>
		<comments>http://www.eliasinteractive.com/blog/a-high-level-business-use-perspective-on-svn/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 07:09:20 +0000</pubDate>
		<dc:creator>Lee Taylor</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Best Practices With Magento]]></category>
		<category><![CDATA[Coding With Magento]]></category>
		<category><![CDATA[development tools]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Magento Administration]]></category>
		<category><![CDATA[Magento Commerce]]></category>
		<category><![CDATA[magento development]]></category>
		<category><![CDATA[Managing A Magento Project]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.eliasinteractive.com/?p=839</guid>
		<description><![CDATA[Who: Anyone who works with Magento (especially clients who are running a store) and could benefit from a more in-depth understanding of Magento best practices. What: SVN and Magento (a sweet relationship) Why: Because whether you are a client or a developer, your life can be made easier by using &#8230; <a href="http://www.eliasinteractive.com/blog/a-high-level-business-use-perspective-on-svn/">Continue Reading <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Who:</strong> Anyone who works with Magento (especially clients who are running a store) and could benefit from a more in-depth understanding of Magento best practices.<br />
<strong>What:</strong> SVN and Magento (a sweet relationship)<br />
<strong>Why:</strong> Because whether you are a client or a developer, your life can be made easier by using SVN and reaping its benefits</p>
<p><strong>Quick Summary</strong>:</p>
<ol>
<li> High-level explanation of SVN</li>
<li>Who should use SVN</li>
<li>Why it should be used</li>
<li>Specific things to watch out for with Magento</li>
<li>Bonus: optional tools</li>
</ol>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-843" title="SVN-Environment Relationships" src="http://www.eliasinteractive.com/wp-content/uploads/2009/11/magento_admin.jpg" alt="SVN-Environment Relationships" width="500" height="600" /></p>
<h2>1. A high-level explanation SVN</h2>
<p>“<a href="http://subversion.tigris.org/">SVN</a>” (aka “Subversion”) changes and improves the development process. It is an “enhancement” to “<a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System">CVS</a>” which allows developers to maintain local, staging, and production environments. This is a best proactive for most software development (and Magento) projects. SVN relates to “<a href="http://git-scm.com/">Git</a>” (though some prefer one more than the other) and is free to use.</p>
<p>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 (a total of about 6 seconds). In addition, any 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 thus organized for development and proper administration.</p>
<p>Just to reiterate &#8211; there are an incredible number of benefits to SVN… too many to mention here.</p>
<h2>2. Who should use SVN</h2>
<p>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).</p>
<h2>3. Why SVN should be used</h2>
<p>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 (read open for business). 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. But large cocktails are no longer necessary to cope with such an event thanks to SVN. The developer&#8217;s life becomes easier; and the client&#8217;s business is safer. When used properly, SVN ensures reliability, integrity, speed, and fall-back recovery.</p>
<h2>4. Specific things to watch out for with Magento</h2>
<p>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:</p>
<p>+ You need to watch out for the caching within Magento. 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:</p>
<ul>
<li>app/etc/local.xml (or use SVN lock instead for this)</li>
<li>media/catalog/product/cache</li>
<li>var/</li>
</ul>
<p>+ If you use Beanstalk then you can streamline SVN managing with the &#8220;Deployment&#8221; tool within BeanstalkApp&#8217;s repository storage.</p>
<p>+ Use a 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). Maintain a staging environment and use the test script from every angle prior to going “live” to production with the new changes.</p>
<p>+ For phases of a project, 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.</p>
<p>+ We prefer to keep the entire Magento directory maintained via a SVN repo. 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.</p>
<h2>5. Bonus: optional tools</h2>
<p>At Elias, we fancy apps that make our lives easier. 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: these may be Apple-specific. Forgive us):</p>
<ul>
<li><a href="http://versionsapp.com/">VersionsApp</a>: A high-quality desktop application that allows one to manage repositories locally for streamlined management of code.</li>
<li><a href="http://beanstalkapp.com/">BeanstalkApp</a>: A sweet as online SVN storage service to host repositories full of code, revisions, and a great interface for management.</li>
<li><a href="http://www.panic.com/coda/" target="_blank">Coda App</a>: A quality code editor that integrates with SVN</li>
<li><a href="http://macromates.com/" target="_blank">TextMate</a>: Another quality code editor with SVN integration</li>
<li><a href="http://www.mamp.info/" target="_blank">MAMP</a>: A personal Mac server with Apache, Mysql and PHP</li>
<li><a href="http://clickontyler.com/virtualhostx/" target="_blank">VirtualHostX</a>: A virtual hosting utility that works well with MAMP</li>
<li><a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a>: A sweet virtualization product to run multiple operating systems</li>
<li><a href="http://spoon.net/" target="_blank">Spoon.net</a>: A browser-compatibility testing tool we&#8217;re just becoming familiar with</li>
</ul>
<p>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&#8221; for SVN and explanation of why it is a Magento best practice. We welcome you to chime in with other suggestions for us all to benefit from!
<div id="tweetbutton839" class="tw_button" style="float:left;margin-right:10px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fbit.ly%2FjQ96tm&amp;via=tweetelias&amp;text=SVN%3A%20Magento%20Best%20Practice&amp;related=&amp;lang=en&amp;count=horizontal&amp;counturl=http%3A%2F%2Fwww.eliasinteractive.com%2Fblog%2Fa-high-level-business-use-perspective-on-svn%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://www.eliasinteractive.com/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eliasinteractive.com/blog/a-high-level-business-use-perspective-on-svn/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

