<?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 - vcs</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>
    <item>
      <trackback:ping>http://www.frontiertown.co.uk/Trackback.aspx?guid=2d2d036a-588b-486d-b5a3-30d741507b0d</trackback:ping>
      <pingback:server>http://www.frontiertown.co.uk/pingback.aspx</pingback:server>
      <pingback:target>http://www.frontiertown.co.uk/PermaLink,guid,2d2d036a-588b-486d-b5a3-30d741507b0d.aspx</pingback:target>
      <dc:creator>Richard Downer</dc:creator>
      <wfw:comment>http://www.frontiertown.co.uk/CommentView,guid,2d2d036a-588b-486d-b5a3-30d741507b0d.aspx</wfw:comment>
      <wfw:commentRss>http://www.frontiertown.co.uk/SyndicationService.asmx/GetEntryCommentsRss?guid=2d2d036a-588b-486d-b5a3-30d741507b0d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When I began work at my current employer, they were using Microsoft Visual SourceSafe
for version control. This is the tool used by a great many small Microsoft software
development shops - when buying an MSDN license to get the development tools, included
in the pack is Visual SourceSafe. This makes SourceSafe a no-brainer.
</p>
        <p>
Unfortunately SourceSafe is one of the weakest version control systems ("<em>VCS</em>")
around. I won't go into details why not - if you want to know more, I suggest these
articles:
</p>
        <ul>
          <li>
            <a href="http://www.developsense.com/testing/VSSDefects.html">Visual SourceSafe Version
Control: Unsafe at any Speed?</a> by Michael Bolton (2003) 
</li>
          <li>
            <a href="http://www.highprogrammer.com/alan/windev/sourcesafe.html">Visual SourceSafe:
Microsoft's Source Destruction System</a> by Alan De Smet (2002) 
</li>
          <li>
            <a href="http://c2.com/cgi/wiki?SourceSafe">C2.com's Wiki page on SourceSafe</a>
          </li>
        </ul>
        <p>
Some of these pages are quite old now, but so is SourceSafe. It sat at version 6.0
from around the late 90s until 2005 (with a few service packs along the way.) Visual
SourceSafe 2005 then arrived, which fixed some of its limitations but without making
fundamental changes. So you can still get SourceSafe today and it will have most of
the problems and limitations described in the articles above.
</p>
        <p>
So assuming you're now convinced to move away from SourceSafe. To what? This is not
a simple question - there are a huge number of version control systems out there.
</p>
        <p>
Your first decision is to make the choice between the classic or distributed flavours
of version control. Distributed version control systems - DVCS - are relatively new
but have gained a lot of ground in the last couple of years. The highest profile project
using a DVCS is Linux. Linux is developed in a highly-distributed fashion, with hundreds
of developers all around the world, and a DVCS supports this style of development.
</p>
        <p>
My knowledge of DVCS is limited, so I will refer you Eric Sink, an expert on version
control systems, who has very recently written on the subject of DVCS, with some very
detailed yet readable articles:
</p>
        <ul>
          <li>
            <a href="http://www.ericsink.com/entries/git_index.html">Git is the C of Version Control
Tools</a>
          </li>
          <li>
            <a href="http://www.ericsink.com/entries/git_immutability.html">On Git's lack of respect
for immutability and the Best Practices for a DVCS</a>
          </li>
          <li>
            <a href="http://www.ericsink.com/entries/dvcs_dag_1.html">DVCS and DAGs, Part 1</a>
          </li>
          <li>
            <a href="http://www.ericsink.com/entries/dvcs_dag_2.html">DVCS and DAGs, Part 2</a>
          </li>
          <li>
            <a href="http://www.ericsink.com/entries/dbts_fossil.html">DVCS and Bug Tracking</a>
          </li>
        </ul>
        <p>
For now, I will concentrate back on the classic model of version control. This involves
a central server, and each team member checks out from and in to a single central
server. There is still a huge choice of software here - for an overwhelming list,
see the <a href="http://en.wikipedia.org/wiki/List_of_revision_control_software">List
of revision control software</a> article in Wikipedia.
</p>
        <p>
However my choice of VCS is undoubtedly <a href="http://subversion.tigris.org/features.html">Subversion</a>.
This open source tool is built on solid VCS principles and has a great ecosystem of
supporting tools.
</p>
        <p>
In the next article I will explain how you can migrate your current SourceSafe repository
into Subversion.
</p>
        <p>
          <em>Edit: this post was originally titled Moving away from Microsoft Visual SourceSafe
- Part 1</em>
        </p>
        <img width="0" height="0" src="http://www.frontiertown.co.uk/aggbug.ashx?id=2d2d036a-588b-486d-b5a3-30d741507b0d" />
      </body>
      <title>Of Microsoft Visual SourceSafe, and why to get rid of it</title>
      <guid isPermaLink="false">http://www.frontiertown.co.uk/PermaLink,guid,2d2d036a-588b-486d-b5a3-30d741507b0d.aspx</guid>
      <link>http://www.frontiertown.co.uk/2009/03/21/OfMicrosoftVisualSourceSafeAndWhyToGetRidOfIt.aspx</link>
      <pubDate>Sat, 21 Mar 2009 10:50:00 GMT</pubDate>
      <description>&lt;p&gt;
When I began work at my current employer, they were using Microsoft Visual SourceSafe
for version control. This is the tool used by a great many small Microsoft software
development shops - when buying an MSDN license to get the development tools, included
in the pack is Visual SourceSafe. This makes SourceSafe a no-brainer.
&lt;/p&gt;
&lt;p&gt;
Unfortunately SourceSafe is one of the weakest version control systems (&amp;quot;&lt;em&gt;VCS&lt;/em&gt;&amp;quot;)
around. I won't go into details why not - if you want to know more, I suggest these
articles:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.developsense.com/testing/VSSDefects.html"&gt;Visual SourceSafe Version
Control: Unsafe at any Speed?&lt;/a&gt; by Michael Bolton (2003) &gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.highprogrammer.com/alan/windev/sourcesafe.html"&gt;Visual SourceSafe:
Microsoft's Source Destruction System&lt;/a&gt; by Alan De Smet (2002) 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://c2.com/cgi/wiki?SourceSafe"&gt;C2.com's Wiki page on SourceSafe&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Some of these pages are quite old now, but so is SourceSafe. It sat at version 6.0
from around the late 90s until 2005 (with a few service packs along the way.) Visual
SourceSafe 2005 then arrived, which fixed some of its limitations but without making
fundamental changes. So you can still get SourceSafe today and it will have most of
the problems and limitations described in the articles above.
&lt;/p&gt;
&lt;p&gt;
So assuming you're now convinced to move away from SourceSafe. To what? This is not
a simple question - there are a huge number of version control systems out there.
&lt;/p&gt;
&lt;p&gt;
Your first decision is to make the choice between the classic or distributed flavours
of version control. Distributed version control systems - DVCS - are relatively new
but have gained a lot of ground in the last couple of years. The highest profile project
using a DVCS is Linux. Linux is developed in a highly-distributed fashion, with hundreds
of developers all around the world, and a DVCS supports this style of development.
&lt;/p&gt;
&lt;p&gt;
My knowledge of DVCS is limited, so I will refer you Eric Sink, an expert on version
control systems, who has very recently written on the subject of DVCS, with some very
detailed yet readable articles:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.ericsink.com/entries/git_index.html"&gt;Git is the C of Version Control
Tools&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.ericsink.com/entries/git_immutability.html"&gt;On Git's lack of respect
for immutability and the Best Practices for a DVCS&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.ericsink.com/entries/dvcs_dag_1.html"&gt;DVCS and DAGs, Part 1&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.ericsink.com/entries/dvcs_dag_2.html"&gt;DVCS and DAGs, Part 2&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.ericsink.com/entries/dbts_fossil.html"&gt;DVCS and Bug Tracking&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For now, I will concentrate back on the classic model of version control. This involves
a central server, and each team member checks out from and in to a single central
server. There is still a huge choice of software here - for an overwhelming list,
see the &lt;a href="http://en.wikipedia.org/wiki/List_of_revision_control_software"&gt;List
of revision control software&lt;/a&gt; article in Wikipedia.
&lt;/p&gt;
&lt;p&gt;
However my choice of VCS is undoubtedly &lt;a href="http://subversion.tigris.org/features.html"&gt;Subversion&lt;/a&gt;.
This open source tool is built on solid VCS principles and has a great ecosystem of
supporting tools.
&lt;/p&gt;
&lt;p&gt;
In the next article I will explain how you can migrate your current SourceSafe repository
into Subversion.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Edit: this post was originally titled Moving away from Microsoft Visual SourceSafe
- Part 1&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.frontiertown.co.uk/aggbug.ashx?id=2d2d036a-588b-486d-b5a3-30d741507b0d" /&gt;</description>
      <comments>http://www.frontiertown.co.uk/CommentView,guid,2d2d036a-588b-486d-b5a3-30d741507b0d.aspx</comments>
      <category>vcs</category>
    </item>
  </channel>
</rss>