<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Frontier Town - subversion</title>
    <link>http://www.frontiertown.co.uk/</link>
    <description>By Richard Downer</description>
    <language>en-us</language>
    <copyright>Richard Downer</copyright>
    <lastBuildDate>Sun, 05 Apr 2009 10:03:00 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>richard@frontiertown.co.uk</managingEditor>
    <webMaster>richard@frontiertown.co.uk</webMaster>
    <item>
      <trackback:ping>http://www.frontiertown.co.uk/Trackback.aspx?guid=9031ac8e-87ab-4d6e-8f3e-1b5906603c4c</trackback:ping>
      <pingback:server>http://www.frontiertown.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.frontiertown.co.uk/PermaLink,guid,9031ac8e-87ab-4d6e-8f3e-1b5906603c4c.aspx</pingback:target>
      <dc:creator>Richard Downer</dc:creator>
      <wfw:comment>http://www.frontiertown.co.uk/CommentView,guid,9031ac8e-87ab-4d6e-8f3e-1b5906603c4c.aspx</wfw:comment>
      <wfw:commentRss>http://www.frontiertown.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=9031ac8e-87ab-4d6e-8f3e-1b5906603c4c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A few years ago, we (at the company I work for) decided to move away from Microsoft
Visual SourceSafe (VSS) to Subversion. The tool <a href="http://www.pumacode.org/projects/vss2svn">vss2svn</a> is
available to ease the conversion, and with Subversion and all the tools open source,
it was a low-cost route into a modern, reliable and well-supported version control
system.
</p>
        <p>
Before getting started, read up on Subversion. It does some things differently to
VSS - well, to be more accurate, VSS does things differently to just about all other
version control systems - so it's well to understand what the new system is like.
Take a look at <a href="http://www.frontiertown.co.uk/2009/03/moving-away-from-microsoft-visual.html">my
previous article</a> and follow the links to understand how things like VSS' branching
is peculiar to itself, for example. Also have a good read of <a href="http://www.ericsink.com/scm/source_control.html">Eric
Sink's Source Control HOWTO</a> for a full primer on mainstream version control systems.
</p>
        <p>
To learn about Subversion, your first start is the official book, <a href="http://svnbook.red-bean.com/">Version
Control with Subversion</a>, available both online and in print. Also have a look
at <a href="http://www.pragprog.com/titles/svn/pragmatic-version-control-using-subversion">Pragmatic
Version Control with Subversion</a>, from the Pragmatic Programmer's bookshelf.
</p>
        <p>
Of course, nothing is better than actually trying the software out yourself. Subversion
can be tried in a single-user configuration, a local repository accessed over the
filesystem, which makes it very easy to try for yourself. Create a repository, add
some stuff to it and experiment with checking in, making copies and branches and doing
merges. Try out <a href="http://tortoisesvn.net/">TortoiseSVN</a> for an excellent
front-end onto Subversion.
</p>
        <p>
In reality, you will need to run Subversion in a server configuration. Subversion
has a module for Apache and also a standalone server. We chose the Apache option,
but this does require confidence with command lines and text file configurations (my
previous life working with Unix and Linux helped!) However, since we set up Subversion,
products such as the free <a href="http://www.visualsvn.com/server/">VisualSVN Server</a> make
setting up and administering Subversion servers achievable entirely through a good
UI.
</p>
        <p>
But what about everything you currently have in Visual SourceSafe? Fortunately, <a href="http://www.pumacode.org/projects/vss2svn">vss2svn</a> will
convert a VSS repository into a format that can be loaded into Subversion, so you
can keep all your work, complete with history, when you start with Subversion. Some
VSS concepts don't match perfectly onto Subversion (for example, VSS doesn't have
atomic commits) so it's not a perfect conversion, but in practice it works well.
</p>
        <p>
vss2svn is written in Perl. I had difficulties getting the prepared vss2svn.exe working
on windows, so I decided to run the Perl scripts on Linux instead. The conversion
takes hours, so I let it run overnight. The output of this is a Subversion dumpfile.
Create a new repository in Subversion, and then run <span style="font-style: italic">svnadmin
load</span> to load the dumpfile into the empty repository. (I decided to use the <span style="font-style: italic">--parent-dir</span> option
to svnadmin to place the VSS repository into a subdirectory of the new repository
- this allowed us to, over time, rearrange the repository structure from fresh, while
keeping all the historic VSS projects as they were.)
</p>
        <p>
We made this conversion over two years ago, and despite some nervousness about the
maturity of the tool, not to mention the rather large number of things in the 'orphaned'
folder, it has worked perfectly. We have not seen a single issue with our converted
repository. I am very happy with our much improved source control system!
</p>
        <p>
Once you're confident of your new Subversion system, you can experiment with adding
more tools to it. <a href="http://www.viewvc.org/">ViewVC</a> adds a web-based repository
browser. <span style="font-style: italic">Hooks</span> allow you to write scripts
that fire on checkins and other events in the repository, which allows you to do things
like send e-mail notifications of checkins, and update your bug tracking system, for
example.
</p>
        <p>
So, don't be afraid to make the jump - Subversion is a vastly improved version control
system over VSS. It's some work to make the conversion and get used to Subversion,
but it is a much more capable and higher-quality version control system.
</p>
        <img width="0" height="0" src="http://www.frontiertown.co.uk/aggbug.ashx?id=9031ac8e-87ab-4d6e-8f3e-1b5906603c4c" />
      </body>
      <title>From Visual SourceSafe to Subversion</title>
      <guid isPermaLink="false">http://www.frontiertown.co.uk/PermaLink,guid,9031ac8e-87ab-4d6e-8f3e-1b5906603c4c.aspx</guid>
      <link>http://www.frontiertown.co.uk/2009/04/05/FromVisualSourceSafeToSubversion.aspx</link>
      <pubDate>Sun, 05 Apr 2009 10:03:00 GMT</pubDate>
      <description>&lt;p&gt;
A few years ago, we (at the company I work for) decided to move away from Microsoft
Visual SourceSafe (VSS) to Subversion. The tool &lt;a href="http://www.pumacode.org/projects/vss2svn"&gt;vss2svn&lt;/a&gt; is
available to ease the conversion, and with Subversion and all the tools open source,
it was a low-cost route into a modern, reliable and well-supported version control
system.
&lt;/p&gt;
&lt;p&gt;
Before getting started, read up on Subversion. It does some things differently to
VSS - well, to be more accurate, VSS does things differently to just about all other
version control systems - so it's well to understand what the new system is like.
Take a look at &lt;a href="http://www.frontiertown.co.uk/2009/03/moving-away-from-microsoft-visual.html"&gt;my
previous article&lt;/a&gt; and follow the links to understand how things like VSS' branching
is peculiar to itself, for example. Also have a good read of &lt;a href="http://www.ericsink.com/scm/source_control.html"&gt;Eric
Sink's Source Control HOWTO&lt;/a&gt; for a full primer on mainstream version control systems.
&lt;/p&gt;
&lt;p&gt;
To learn about Subversion, your first start is the official book, &lt;a href="http://svnbook.red-bean.com/"&gt;Version
Control with Subversion&lt;/a&gt;, available both online and in print. Also have a look
at &lt;a href="http://www.pragprog.com/titles/svn/pragmatic-version-control-using-subversion"&gt;Pragmatic
Version Control with Subversion&lt;/a&gt;, from the Pragmatic Programmer's bookshelf.
&lt;/p&gt;
&lt;p&gt;
Of course, nothing is better than actually trying the software out yourself. Subversion
can be tried in a single-user configuration, a local repository accessed over the
filesystem, which makes it very easy to try for yourself. Create a repository, add
some stuff to it and experiment with checking in, making copies and branches and doing
merges. Try out &lt;a href="http://tortoisesvn.net/"&gt;TortoiseSVN&lt;/a&gt; for an excellent
front-end onto Subversion.
&lt;/p&gt;
&lt;p&gt;
In reality, you will need to run Subversion in a server configuration. Subversion
has a module for Apache and also a standalone server. We chose the Apache option,
but this does require confidence with command lines and text file configurations (my
previous life working with Unix and Linux helped!) However, since we set up Subversion,
products such as the free &lt;a href="http://www.visualsvn.com/server/"&gt;VisualSVN Server&lt;/a&gt; make
setting up and administering Subversion servers achievable entirely through a good
UI.
&lt;/p&gt;
&lt;p&gt;
But what about everything you currently have in Visual SourceSafe? Fortunately, &lt;a href="http://www.pumacode.org/projects/vss2svn"&gt;vss2svn&lt;/a&gt; will
convert a VSS repository into a format that can be loaded into Subversion, so you
can keep all your work, complete with history, when you start with Subversion. Some
VSS concepts don't match perfectly onto Subversion (for example, VSS doesn't have
atomic commits) so it's not a perfect conversion, but in practice it works well.
&lt;/p&gt;
&lt;p&gt;
vss2svn is written in Perl. I had difficulties getting the prepared vss2svn.exe working
on windows, so I decided to run the Perl scripts on Linux instead. The conversion
takes hours, so I let it run overnight. The output of this is a Subversion dumpfile.
Create a new repository in Subversion, and then run &lt;span style="font-style: italic"&gt;svnadmin
load&lt;/span&gt; to load the dumpfile into the empty repository. (I decided to use the &lt;span style="font-style: italic"&gt;--parent-dir&lt;/span&gt; option
to svnadmin to place the VSS repository into a subdirectory of the new repository
- this allowed us to, over time, rearrange the repository structure from fresh, while
keeping all the historic VSS projects as they were.)
&lt;/p&gt;
&lt;p&gt;
We made this conversion over two years ago, and despite some nervousness about the
maturity of the tool, not to mention the rather large number of things in the 'orphaned'
folder, it has worked perfectly. We have not seen a single issue with our converted
repository. I am very happy with our much improved source control system!
&lt;/p&gt;
&lt;p&gt;
Once you're confident of your new Subversion system, you can experiment with adding
more tools to it. &lt;a href="http://www.viewvc.org/"&gt;ViewVC&lt;/a&gt; adds a web-based repository
browser. &lt;span style="font-style: italic"&gt;Hooks&lt;/span&gt; allow you to write scripts
that fire on checkins and other events in the repository, which allows you to do things
like send e-mail notifications of checkins, and update your bug tracking system, for
example.
&lt;/p&gt;
&lt;p&gt;
So, don't be afraid to make the jump - Subversion is a vastly improved version control
system over VSS. It's some work to make the conversion and get used to Subversion,
but it is a much more capable and higher-quality version control system.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.frontiertown.co.uk/aggbug.ashx?id=9031ac8e-87ab-4d6e-8f3e-1b5906603c4c" /&gt;</description>
      <comments>http://www.frontiertown.co.uk/CommentView,guid,9031ac8e-87ab-4d6e-8f3e-1b5906603c4c.aspx</comments>
      <category>subversion</category>
      <category>vcs</category>
    </item>
  </channel>
</rss>