<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Developer Question: External Content in Software Repository?</title>
	<atom:link href="http://www.potentialgames.com/blog/2008/06/16/developer-question-external-content-in-software-repository/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.potentialgames.com/blog/2008/06/16/developer-question-external-content-in-software-repository/</link>
	<description>Notes of a Potential Independent Game Developer</description>
	<lastBuildDate>Wed, 26 Oct 2011 00:31:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
	<item>
		<title>By: neb</title>
		<link>http://www.potentialgames.com/blog/2008/06/16/developer-question-external-content-in-software-repository/comment-page-1/#comment-154</link>
		<dc:creator>neb</dc:creator>
		<pubDate>Tue, 17 Jun 2008 17:28:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.potentialgames.com/blog/?p=59#comment-154</guid>
		<description>Storing the full latest copy would be good for recoverability. However, Subversion stores its diffs the other way around. According to the &lt;a href=&quot;http://svnbook.red-bean.com/en/1.4/svn-book.html&quot; rel=&quot;nofollow&quot;&gt;(excellent) user manual&lt;/a&gt;:

&lt;blockquote&gt;&quot;FSFS writes the latest version of a file as a delta against an earlier version...&quot;&lt;/blockquote&gt;
</description>
		<content:encoded><![CDATA[<p>Storing the full latest copy would be good for recoverability. However, Subversion stores its diffs the other way around. According to the <a href="http://svnbook.red-bean.com/en/1.4/svn-book.html" rel="nofollow">(excellent) user manual</a>:</p>
<blockquote><p>&#8220;FSFS writes the latest version of a file as a delta against an earlier version&#8230;&#8221;</p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todd</title>
		<link>http://www.potentialgames.com/blog/2008/06/16/developer-question-external-content-in-software-repository/comment-page-1/#comment-153</link>
		<dc:creator>Todd</dc:creator>
		<pubDate>Tue, 17 Jun 2008 16:48:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.potentialgames.com/blog/?p=59#comment-153</guid>
		<description>Interesting.  As you have described it there are benefits and trade-offs to each approach.  Storing incremental data saves space, but I imagine that reconstructing a file incrementally would become process intensive as the history grew.  

It probably stores the most recent version as a whole copy and then each historical reference describes what you change in the current version to get back to that historical version.  Access would be slow for historical versions, but good for current versions.

I&#039;m sure looking it up would answer the question definitively, but it is more fun to speculate.</description>
		<content:encoded><![CDATA[<p>Interesting.  As you have described it there are benefits and trade-offs to each approach.  Storing incremental data saves space, but I imagine that reconstructing a file incrementally would become process intensive as the history grew.  </p>
<p>It probably stores the most recent version as a whole copy and then each historical reference describes what you change in the current version to get back to that historical version.  Access would be slow for historical versions, but good for current versions.</p>
<p>I&#8217;m sure looking it up would answer the question definitively, but it is more fun to speculate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: neb</title>
		<link>http://www.potentialgames.com/blog/2008/06/16/developer-question-external-content-in-software-repository/comment-page-1/#comment-152</link>
		<dc:creator>neb</dc:creator>
		<pubDate>Tue, 17 Jun 2008 14:07:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.potentialgames.com/blog/?p=59#comment-152</guid>
		<description>Good points. Regarding binary storage space, ClearCase is certainly a beast of a revision control system; I have no idea how it actually stores data. CVS just keeps a copy of each new binary file version.

Subversion uses a binary diff algorithm to more efficiently store just the bytes that have changed. The efficiency is dependent on how the binary changes from one version to the next.

For example, does a small change to a large image allow Subversion to store just a few new bytes, or does the image&#039;s file format cause extensive restructuring of the data, forcing Subversion to store (almost) a whole new copy?

I wonder if there are any statistics on how well this performs...</description>
		<content:encoded><![CDATA[<p>Good points. Regarding binary storage space, ClearCase is certainly a beast of a revision control system; I have no idea how it actually stores data. CVS just keeps a copy of each new binary file version.</p>
<p>Subversion uses a binary diff algorithm to more efficiently store just the bytes that have changed. The efficiency is dependent on how the binary changes from one version to the next.</p>
<p>For example, does a small change to a large image allow Subversion to store just a few new bytes, or does the image&#8217;s file format cause extensive restructuring of the data, forcing Subversion to store (almost) a whole new copy?</p>
<p>I wonder if there are any statistics on how well this performs&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todd</title>
		<link>http://www.potentialgames.com/blog/2008/06/16/developer-question-external-content-in-software-repository/comment-page-1/#comment-147</link>
		<dc:creator>Todd</dc:creator>
		<pubDate>Mon, 16 Jun 2008 18:28:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.potentialgames.com/blog/?p=59#comment-147</guid>
		<description>As illustrated very nicely by the ClearCase trainer that came here a few years ago, CM systems are basically three-dimensional filesystems, where the third dimension is time.  Your content has a direct chronological tie to your implementation, so I see nothing wrong or impure about putting content in the repository.

The only objections would be:
  1.  Philosophical - from a purist standpoint it doesn&#039;t seem the right place for data.  A database seems more appropriate, but ultimately not a good solution.  However, a filesystem is, in fact, a database.  A 3-D database is an good place for data that changes over time. 
  2.  Storage - Keeping every revision of data could eat up disk space.

I would not consider these strong enough objections to rule out your simple solution: put it all in the repository.</description>
		<content:encoded><![CDATA[<p>As illustrated very nicely by the ClearCase trainer that came here a few years ago, CM systems are basically three-dimensional filesystems, where the third dimension is time.  Your content has a direct chronological tie to your implementation, so I see nothing wrong or impure about putting content in the repository.</p>
<p>The only objections would be:<br />
  1.  Philosophical &#8211; from a purist standpoint it doesn&#8217;t seem the right place for data.  A database seems more appropriate, but ultimately not a good solution.  However, a filesystem is, in fact, a database.  A 3-D database is an good place for data that changes over time.<br />
  2.  Storage &#8211; Keeping every revision of data could eat up disk space.</p>
<p>I would not consider these strong enough objections to rule out your simple solution: put it all in the repository.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

