<?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: VSS to SVN</title>
	<atom:link href="http://www.gamesandcode.com/blog/2008/01/vss-to-svn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.gamesandcode.com/blog/2008/01/vss-to-svn</link>
	<description>code it, play it</description>
	<lastBuildDate>Thu, 12 Aug 2010 18:51:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Phil</title>
		<link>http://www.gamesandcode.com/blog/2008/01/vss-to-svn/comment-page-1#comment-18</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Sun, 27 Apr 2008 03:09:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.gamesandcode.com/blog/2008/01/vss-to-svn#comment-18</guid>
		<description>The core Subversion package is relatively easy to install (via a linux distribution&#039;s package manager, or on Windows using the .exe installer.) Like most open-source tools, it has a command line interface, and can be tough to configure correctly. (Especially when setting up Apache on Windows to use the svn DAV module.)

TortoiseSVN is a very functional, reliable tool for Windows users; there are also a few VS plugins that provide a level of integration similar to that of VSS. AnkhSvn is reasonably functional and free; VisualSVN (visualsvn.com) is somewhat more reliable (it&#039;s based on TortoiseSVN), but is a commercial product. (Well worth the $49, IMO) VisualSVN also provides a server component for Windows, which automates the installation and provides an MMC-based configuration tool. It supports SSL and Windows user authentication, and best of all, VisualSVN Server is free.

Subversion supports file locking quite easily; there are lock/unlock commands (also exposed in the GUI tools) which allow a file to be locked by a specific user; commits will be rejected until the file is unlocked. For problematic files (such as binary files) there is a &quot;needs-lock&quot; property that can be set for a file, which requires the file be locked before a commit is allowed. (Unlike VSS, if someone goes on vacation with a file locked, anyone can forcibly override the lock. Since any rouge changes can easily be reverted, this isn&#039;t a significant security issue.)

Subversion does in fact support file sharing via the externals feature. &quot;svn:externals&quot; is a property that can be applied to folders; when a folder with this property set is checked out or updated, Subversion automatically reads this property and checks out/updates the specified projects (elsewhere in the same repository or in a different repository altogether) into subfolders. 

Unlike VSS, this functions on folders, not individual files; there is no way to share a single file in SVN without putting it in it&#039;s own folder. (IMO, sharing individual files is a bad idea anyway; better to share a complete library, as this induces looser coupling between projects.) We use this with third-party libraries; we check either the source (if we have it) or the binaries (if we don&#039;t) into a separate project, and include it in other projects via Externals. You can also lock an external folder to a specific revision of it&#039;s target repository with a parameter in the externals property, similar to the VSS &quot;pin&quot; feature. (Again, folders only, and it affects the entire subtree.)</description>
		<content:encoded><![CDATA[<p>The core Subversion package is relatively easy to install (via a linux distribution&#8217;s package manager, or on Windows using the .exe installer.) Like most open-source tools, it has a command line interface, and can be tough to configure correctly. (Especially when setting up Apache on Windows to use the svn DAV module.)</p>
<p>TortoiseSVN is a very functional, reliable tool for Windows users; there are also a few VS plugins that provide a level of integration similar to that of VSS. AnkhSvn is reasonably functional and free; VisualSVN (visualsvn.com) is somewhat more reliable (it&#8217;s based on TortoiseSVN), but is a commercial product. (Well worth the $49, IMO) VisualSVN also provides a server component for Windows, which automates the installation and provides an MMC-based configuration tool. It supports SSL and Windows user authentication, and best of all, VisualSVN Server is free.</p>
<p>Subversion supports file locking quite easily; there are lock/unlock commands (also exposed in the GUI tools) which allow a file to be locked by a specific user; commits will be rejected until the file is unlocked. For problematic files (such as binary files) there is a &#8220;needs-lock&#8221; property that can be set for a file, which requires the file be locked before a commit is allowed. (Unlike VSS, if someone goes on vacation with a file locked, anyone can forcibly override the lock. Since any rouge changes can easily be reverted, this isn&#8217;t a significant security issue.)</p>
<p>Subversion does in fact support file sharing via the externals feature. &#8220;svn:externals&#8221; is a property that can be applied to folders; when a folder with this property set is checked out or updated, Subversion automatically reads this property and checks out/updates the specified projects (elsewhere in the same repository or in a different repository altogether) into subfolders. </p>
<p>Unlike VSS, this functions on folders, not individual files; there is no way to share a single file in SVN without putting it in it&#8217;s own folder. (IMO, sharing individual files is a bad idea anyway; better to share a complete library, as this induces looser coupling between projects.) We use this with third-party libraries; we check either the source (if we have it) or the binaries (if we don&#8217;t) into a separate project, and include it in other projects via Externals. You can also lock an external folder to a specific revision of it&#8217;s target repository with a parameter in the externals property, similar to the VSS &#8220;pin&#8221; feature. (Again, folders only, and it affects the entire subtree.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
