<?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: Version Control and Leadership</title>
	<atom:link href="http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/</link>
	<description>Sarah and Alaric Snell-Pym living in interesting times</description>
	<pubDate>Thu, 09 Feb 2012 03:04:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Sarah</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77187</link>
		<dc:creator>Sarah</dc:creator>
		<pubDate>Tue, 05 Aug 2008 10:12:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77187</guid>
		<description>&lt;p&gt;Al I think you need to write a follow up post to this one as many people dont explore the comments.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Al I think you need to write a follow up post to this one as many people dont explore the comments.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Angie</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77172</link>
		<dc:creator>Angie</dc:creator>
		<pubDate>Mon, 04 Aug 2008 22:48:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77172</guid>
		<description>&lt;p&gt;Yes Alaric, I dare you to write your own! You have the knowledge, and ability, I know time is sometimes a constraint but often the best work is done under pressure.  OK there is a chance that it will all be for nought, but a chances sometimes has to be taken.  I know I don't work in your field but have had to step off the edge several times in my life to achieve my goals.  Some people seem to think that taking a degree at nearly 60 is jumping over the edge, and with breast cancer as well!  My brain is still 30 and can take a challenge, so I know that your 30 year old brain can.  Once more I dare you.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Yes Alaric, I dare you to write your own! You have the knowledge, and ability, I know time is sometimes a constraint but often the best work is done under pressure.  OK there is a chance that it will all be for nought, but a chances sometimes has to be taken.  I know I don't work in your field but have had to step off the edge several times in my life to achieve my goals.  Some people seem to think that taking a degree at nearly 60 is jumping over the edge, and with breast cancer as well!  My brain is still 30 and can take a challenge, so I know that your 30 year old brain can.  Once more I dare you.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: alaric</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77157</link>
		<dc:creator>alaric</dc:creator>
		<pubDate>Mon, 04 Aug 2008 14:33:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77157</guid>
		<description>&lt;blockquote&gt;
  &lt;blockquote&gt;
    &lt;p&gt;Another point I note is that working-copy filesystem integration seems to be a 
    weak point of all version control systems. Particularly when it comes to
    file/directory renames, adds, and deletes.&lt;/p&gt;
  &lt;/blockquote&gt;
  
  &lt;p&gt;Actually, I think the post you reference is talking about a different problem -- designing merging algorithms that Don't Do Bad Things.  It's working on the basis that you already have different branches containing existing commits, and want to sensibly merge the changes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ah, but the problems often revolve around renames and/or deletes, which are also the weak points in working copy integration.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;And this is one of the places where content-addressable-based systems like git &lt;em&gt;really&lt;/em&gt; shine -- you don't have to explicitly specify these actions at all!  Because it's taking a snapshot of the entire working set, you it's not necessary to explicitly tell it that you renamed file A to file B just so that it can maintain a complete history for particular chunks of code; instead, git (for example) calculates this information on-the-fly at history-inspection time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;How's it detect a file being renamed &lt;em&gt;and&lt;/em&gt; modified, though? Without being explicitly told it's happened, there's then only heuristic connections between that operation and a simultaneous deletion of a file and a creation of a new one.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Not only does this save an administrative burden, it can track content at the &lt;em&gt;content&lt;/em&gt; rather than at the &lt;em&gt;file&lt;/em&gt; level -- and is thus able to faithfully show content history in circumstances that simpler tools like SVN simply can't represent properly, such as a single file being split up into many smaller ones.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I was wondering about ways of merging changes within a file (eg, reordering lines) and changes between files (eg, renames) in the same way; store the entire repository as something like a giant tar file using a diff algorithm that detects moved regions...&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<blockquote>
  <blockquote>
    <p>Another point I note is that working-copy filesystem integration seems to be a 
    weak point of all version control systems. Particularly when it comes to
    file/directory renames, adds, and deletes.</p>
  </blockquote>
  
  <p>Actually, I think the post you reference is talking about a different problem -- designing merging algorithms that Don't Do Bad Things.  It's working on the basis that you already have different branches containing existing commits, and want to sensibly merge the changes.</p>
</blockquote>

<p>Ah, but the problems often revolve around renames and/or deletes, which are also the weak points in working copy integration.</p>

<blockquote>
  <p>And this is one of the places where content-addressable-based systems like git <em>really</em> shine -- you don't have to explicitly specify these actions at all!  Because it's taking a snapshot of the entire working set, you it's not necessary to explicitly tell it that you renamed file A to file B just so that it can maintain a complete history for particular chunks of code; instead, git (for example) calculates this information on-the-fly at history-inspection time.</p>
</blockquote>

<p>How's it detect a file being renamed <em>and</em> modified, though? Without being explicitly told it's happened, there's then only heuristic connections between that operation and a simultaneous deletion of a file and a creation of a new one.</p>

<blockquote>
  <p>Not only does this save an administrative burden, it can track content at the <em>content</em> rather than at the <em>file</em> level -- and is thus able to faithfully show content history in circumstances that simpler tools like SVN simply can't represent properly, such as a single file being split up into many smaller ones.</p>
</blockquote>

<p>I was wondering about ways of merging changes within a file (eg, reordering lines) and changes between files (eg, renames) in the same way; store the entire repository as something like a giant tar file using a diff algorithm that detects moved regions...</p>]]></content:encoded>
	</item>
	<item>
		<title>By: David McBride</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77156</link>
		<dc:creator>David McBride</dc:creator>
		<pubDate>Mon, 04 Aug 2008 14:06:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77156</guid>
		<description>&lt;blockquote&gt;
Another point I note is that working-copy filesystem integration seems to be a weak point of all version control systems. Particularly when it comes to file/directory renames, adds, and deletes.
&lt;/blockquote&gt;

&lt;p&gt;Actually, I think the post you reference is talking about a different problem -- designing merging algorithms that Don't Do Bad Things.  It's working on the basis that you already have different branches containing existing commits, and want to sensibly merge the changes.&lt;/p&gt;

&lt;p&gt;What you're talking about is having (in SVN, for example) to explicitly tell the version-control system about file renames, deletions, and other changes that you've made in preparation for adding a brand-new commit to history.&lt;/p&gt;

&lt;p&gt;And this is one of the places where content-addressable-based systems like git &lt;em&gt;really&lt;/em&gt; shine -- you don't have to explicitly specify these actions at all!  Because it's taking a snapshot of the entire working set, you it's not necessary to explicitly tell it that you renamed file A to file B just so that it can maintain a complete history for particular chunks of code; instead, git (for example) calculates this information on-the-fly at history-inspection time.&lt;/p&gt;

&lt;p&gt;Not only does this save an administrative burden, it can track content at the &lt;em&gt;content&lt;/em&gt; rather than at the &lt;em&gt;file&lt;/em&gt; level -- and is thus able to faithfully show content history in circumstances that simpler tools like SVN simply can't represent properly, such as a single file being split up into many smaller ones.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<blockquote>
Another point I note is that working-copy filesystem integration seems to be a weak point of all version control systems. Particularly when it comes to file/directory renames, adds, and deletes.
</blockquote>

<p>Actually, I think the post you reference is talking about a different problem -- designing merging algorithms that Don't Do Bad Things.  It's working on the basis that you already have different branches containing existing commits, and want to sensibly merge the changes.</p>

<p>What you're talking about is having (in SVN, for example) to explicitly tell the version-control system about file renames, deletions, and other changes that you've made in preparation for adding a brand-new commit to history.</p>

<p>And this is one of the places where content-addressable-based systems like git <em>really</em> shine -- you don't have to explicitly specify these actions at all!  Because it's taking a snapshot of the entire working set, you it's not necessary to explicitly tell it that you renamed file A to file B just so that it can maintain a complete history for particular chunks of code; instead, git (for example) calculates this information on-the-fly at history-inspection time.</p>

<p>Not only does this save an administrative burden, it can track content at the <em>content</em> rather than at the <em>file</em> level -- and is thus able to faithfully show content history in circumstances that simpler tools like SVN simply can't represent properly, such as a single file being split up into many smaller ones.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: alaric</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77147</link>
		<dc:creator>alaric</dc:creator>
		<pubDate>Mon, 04 Aug 2008 10:21:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77147</guid>
		<description>&lt;p&gt;Gosh, I'm commenting on my own post a lot.&lt;/p&gt;

&lt;p&gt;I just noticed a parallel between the VCS issue of ignoring generated and temporary files (.cvsignore, svn:ignore, and so on) and my thoughts on separating different types of files for different backup/archive regimes here:&lt;/p&gt;

&lt;p&gt;http://www.snell-pym.org.uk/archives/2008/07/11/backups-and-archives/&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Gosh, I'm commenting on my own post a lot.</p>

<p>I just noticed a parallel between the VCS issue of ignoring generated and temporary files (.cvsignore, svn:ignore, and so on) and my thoughts on separating different types of files for different backup/archive regimes here:</p>

<p><a href="http://www.snell-pym.org.uk/archives/2008/07/11/backups-and-archives/" rel="nofollow">http://www.snell-pym.org.uk/archives/2008/07/11/backups-and-archives/</a></p>]]></content:encoded>
	</item>
	<item>
		<title>By: alaric</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77146</link>
		<dc:creator>alaric</dc:creator>
		<pubDate>Mon, 04 Aug 2008 10:19:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77146</guid>
		<description>&lt;p&gt;Another point I note is that working-copy filesystem integration seems to be a weak point of all version control systems. Particularly when it comes to file/directory renames, adds, and deletes:&lt;/p&gt;

&lt;p&gt;http://article.gmane.org/gmane.comp.version-control.monotone.devel/3264&lt;/p&gt;

&lt;p&gt;And, from a user-interface perspective, having to tell the VCS about renames by hand is awkward at times. It'd be interesting to make a VCS where your working copy wasn't "checked out" per se, but exported from a little daemon via NFS or the like so that the VCS had total knowledge of file operations. It could also provide a virtual directory structure for nice read-only access to past revisions - /vcs/history/200808041119/foo.txt versus /vcs/branches/master/foo.txt etc.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Another point I note is that working-copy filesystem integration seems to be a weak point of all version control systems. Particularly when it comes to file/directory renames, adds, and deletes:</p>

<p><a href="http://article.gmane.org/gmane.comp.version-control.monotone.devel/3264" rel="nofollow">http://article.gmane.org/gmane.comp.version-control.monotone.devel/3264</a></p>

<p>And, from a user-interface perspective, having to tell the VCS about renames by hand is awkward at times. It'd be interesting to make a VCS where your working copy wasn't "checked out" per se, but exported from a little daemon via NFS or the like so that the VCS had total knowledge of file operations. It could also provide a virtual directory structure for nice read-only access to past revisions - /vcs/history/200808041119/foo.txt versus /vcs/branches/master/foo.txt etc.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: alaric</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77143</link>
		<dc:creator>alaric</dc:creator>
		<pubDate>Mon, 04 Aug 2008 09:19:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77143</guid>
		<description>&lt;p&gt;Yeah, I'd looked briefly at bazaar, but it seems to be falling by the wayside compared to the git/monotone/mercurial set (RIP darcs). I'll take a closer peek...&lt;/p&gt;

&lt;p&gt;What I am finding tricky is finding out which ones use a content-addressable store under the hood as opposed to a revision tree. Is git actually the only one? I know that Subversion (and, therefore, its distributed-operation wrapper svk) and Mercurial do, but digging into the depths of systems to find out how they work at the bottom level is a slow process.&lt;/p&gt;

&lt;p&gt;Content-addressable storage is really brilliant for append-only filesystems; it's efficient and simple, and everything in the store comes with a &lt;em&gt;free&lt;/em&gt; Merkle tree hash.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Yeah, I'd looked briefly at bazaar, but it seems to be falling by the wayside compared to the git/monotone/mercurial set (RIP darcs). I'll take a closer peek...</p>

<p>What I am finding tricky is finding out which ones use a content-addressable store under the hood as opposed to a revision tree. Is git actually the only one? I know that Subversion (and, therefore, its distributed-operation wrapper svk) and Mercurial do, but digging into the depths of systems to find out how they work at the bottom level is a slow process.</p>

<p>Content-addressable storage is really brilliant for append-only filesystems; it's efficient and simple, and everything in the store comes with a <em>free</em> Merkle tree hash.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: alaric</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77140</link>
		<dc:creator>alaric</dc:creator>
		<pubDate>Mon, 04 Aug 2008 09:00:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77140</guid>
		<description>&lt;blockquote&gt;
  &lt;p&gt;Looking at your list of systems, I can't seen any significant omissions. If you do decide to switch to using an existing distributed revision-control system, you almost certainly want to be using one of the ones you mention.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;"If I &lt;em&gt;do&lt;/em&gt; decide to switch to using an existing..." Are you daring me to write my own? Are you? Are you? :-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<blockquote>
  <p>Looking at your list of systems, I can't seen any significant omissions. If you do decide to switch to using an existing distributed revision-control system, you almost certainly want to be using one of the ones you mention.</p>
</blockquote>

<p>"If I <em>do</em> decide to switch to using an existing..." Are you daring me to write my own? Are you? Are you? <img src='http://www.snell-pym.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>By: Violet</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77136</link>
		<dc:creator>Violet</dc:creator>
		<pubDate>Mon, 04 Aug 2008 08:43:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77136</guid>
		<description>&lt;p&gt;I don't seem to mention bazaar in your list of likely candidates, which is the one distributed rcs that I've heard most about. Any particular reason? Or just dropped off your radar? Do check it out if it has passed you by. 
Cheers.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I don't seem to mention bazaar in your list of likely candidates, which is the one distributed rcs that I've heard most about. Any particular reason? Or just dropped off your radar? Do check it out if it has passed you by. 
Cheers.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: David McBride</title>
		<link>http://www.snell-pym.org.uk/archives/2008/08/02/version-control-and-leadership/comment-page-1/#comment-77099</link>
		<dc:creator>David McBride</dc:creator>
		<pubDate>Sun, 03 Aug 2008 15:36:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.snell-pym.org.uk/?p=808#comment-77099</guid>
		<description>&lt;p&gt;Hmm, it appears darcs is no longer a viable concern; see: https://lopsa.org/node/1656&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hmm, it appears darcs is no longer a viable concern; see: <a href="https://lopsa.org/node/1656" rel="nofollow">https://lopsa.org/node/1656</a></p>]]></content:encoded>
	</item>
</channel>
</rss>

