<?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>Davin&#039;s blog &#187; versions</title>
	<atom:link href="http://blog.davingranroth.com/tag/versions/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.davingranroth.com</link>
	<description>Experience design, faith, and family.</description>
	<lastBuildDate>Sat, 21 Jan 2012 13:42:57 +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>1st foray with svn:externals</title>
		<link>http://blog.davingranroth.com/2009/04/1st-foray-with-svnexternals/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=1st-foray-with-svnexternals</link>
		<comments>http://blog.davingranroth.com/2009/04/1st-foray-with-svnexternals/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 03:07:39 +0000</pubDate>
		<dc:creator>Davin Granroth</dc:creator>
				<category><![CDATA[Web design and technology]]></category>
		<category><![CDATA[externals]]></category>
		<category><![CDATA[nephtali]]></category>
		<category><![CDATA[rangelistings.com]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[versions]]></category>

		<guid isPermaLink="false">http://blog.davingranroth.com/?p=793</guid>
		<description><![CDATA[Okay, confession. Since the mid-90s I&#8217;ve helped produce hundreds of websites. Yet, I&#8217;ve been using source code management software for less than 1 year. Hindsight, right? In retrospect, I was just plain ignorant. Had I been using something like Subversion, &#8230; <a href="http://blog.davingranroth.com/2009/04/1st-foray-with-svnexternals/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Okay, confession. Since the mid-90s I&#8217;ve helped produce hundreds of websites. Yet, I&#8217;ve been using source code management software for<em> less than 1 year</em>.</p>
<p>Hindsight, right? In retrospect, I was just plain ignorant. Had I been using something like Subversion, I can think of a few big issues on past projects that just simply wouldn&#8217;t have mattered.</p>
<ul>
<li><strong>Before using Subversion</strong>: &#8220;Argh. I  just royally whacked 189 files in one fell swoop. <em>Curses!</em> When was my last backup?!&#8221;</li>
<li><strong>After using Subversion</strong>: &#8220;Hrm. I just royally whacked 189 files in one fell swoop. Eh, I&#8217;ll just update from the prior revision and try again.&#8221;</li>
</ul>
<p><strong>Source code management irritant</strong></p>
<p>I have a side project, <a href="http://rangelistings.com/">rangelistings.com</a>, built with the <a href="http://nephtaliproject.com/">Nephtali PHP framework</a>.</p>
<p>Updating the framework source code into my site&#8217;s code was trivial, but irritating. With each new release of Nephtali, I would upgrade. I&#8217;d do this by doing an export of the Nephtali source from a Google code repository and then copy and paste in the framework files to my working copy.</p>
<p>I couldn&#8217;t just drag in a directory because that would drop Subversion&#8217;s meta files from that directory and really mess up my working copy. Then I&#8217;d spend an extra half hour or so fiddling around to undo my screwed up Subversion copy. Very irritating.</p>
<p><strong>svn:externals to the rescue</strong></p>
<p>I knew about a feature in subversion called &#8220;externals,&#8221; but had no first-hand experience. I investigated and realized that externals could be the answer to this particular problem.</p>
<p>Here&#8217;s how I made use of externals. When upgrading Nephtali, I updated the files in a working copy directory /nephtali/src/NCore/.</p>
<ol>
<li>Since you can&#8217;t create an external for a directory that already exists, I removed the NCore directory from my working copy and committed that change.</li>
<li>Using Versions, an SVN client for the Mac, added a property to the src directory (NCore http://nephtali.googlecode.com/svn/trunk/src/NCore/).</li>
<li>Ran an SVN update on the src directory and, as though by magic, I suddenly had the up-to-date source of Nephtali&#8217;s core in my working copy.</li>
</ol>
<dl id="attachment_798" class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://blog.davingranroth.com/wp-content/uploads/2009/04/versions-screen-nephtali.png"><img class="size-medium wp-image-798" title="versions-screen-nephtali" src="http://blog.davingranroth.com/wp-content/uploads/2009/04/versions-screen-nephtali-300x173.png" alt="Screenshot of Versions, an SVN app for the Mac" width="300" height="173" /></a></dt>
</dl>
<p>On my first attempt, I  followed an example  I had seen online and created a text document that had the svn:externals property in it, and then added the property &#8216;-F name_of_file.txt&#8217;.</p>
<p>That didn&#8217;t work so well. It created the folder, but failed to load the files from the remote Nephtali repository.</p>
<p>Once I put the local directory and SVN URL in the property itself, it worked like a charm.</p>
<p>Here are a couple other pages I used while looking into svn:externals.</p>
<ul>
<li><a href="http://svnbook.red-bean.com/en/1.0/ch07s03.html">The obligatory manual link: Externals Definitions</a></li>
<li><a href="http://blog.kowalczyk.info/article/Short-tutorial-on-svn-propset-for-svnexternals-p.html">Short tutorial on svn propset for svn:externals property</a> (this one includes the separate text file example)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.davingranroth.com/2009/04/1st-foray-with-svnexternals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

