<commit_before><chapter id="svn-ch-1">

  <title>Introduction</title>

  <simplesect>
    <para>Version control is the art of managing changes to
      information.  It has long been a critical tool for programmers,
      who typically spend their time making small changes to software
      and then undoing those changes the next day.  Imagine a team of
      these programmers working concurrently, and you can see why a
      good system is needed to manage the potential chaos.</para>
  </simplesect>


  <!-- ================================================================= -->
  <!-- ======================== SECTION 1 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-1-sect-1">

    <title>What is Subversion?</title>

    <para>Subversion is a free/open-source version control system.
      That is, Subversion manages files and directories over time.
      A tree of files is placed into a central
      <firstterm>repository</firstterm>.  The repository is much like
      an ordinary file server, except that it remembers every change
      ever made to your files and directories.  This allows you to
      recover older versions of your data, or examine the history of
      how your data changed.  In this regard, many people think of a
      version control system as a sort of <quote>time
      machine</quote>.</para>

    <!-- ### something about Subversion facilitating communication
    between developers?? -->

    <para>Some version control systems are also software configuration
      management (SCM) systems.  These systems are specifically
      tailored to manage trees of source code, and have many features
      that are specific to software development&mdash;such as natively
      understanding programming languages, or supplying tools for
      building software.  Subversion, however, is not one of these
      systems; it is a general system that can be used to manage
      <emphasis>any</emphasis> collection of files, including
      source code.</para>

  </sect1>

  <!-- ================================================================= -->
  <!-- ======================== SECTION 2 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-1-sect-2">

    <title>Subversion's History</title>

    <para>In early 2000, CollabNet, Inc (<systemitem
      class="url">http://www.collab.net</systemitem>) began seeking
      developers to write a replacement for CVS.  CollabNet offers a
      collaboration software suite called SourceCast, of which one
      component is version control.  Although SourceCast used CVS as
      its initial version control system, CVS's limitations were
      obvious from the beginning, and CollabNet knew it would
      eventually have to find something better.  Unfortunately, CVS
      had become the de facto standard in the open source world
      largely because there <emphasis>wasn't</emphasis> anything
      better, at least not under a free license.  So CollabNet
      determined to write a new version control system from scratch,
      retaining the basic ideas of CVS, but without the bugs and
      misfeatures.</para>

    <para>In February 2000, they contacted <NAME>, the author of
      <citetitle>Open Source Development with CVS</citetitle>
      (Coriolis, 1999), and asked if he'd like to work on this new
      project.  Coincidentally, at the time Karl was already
      discussing a design for a new version control system with his
      friend <NAME>.  In 1995 the two had started Cyclic Software,
      a company providing CVS support contracts, and although they
      later sold the business, they still used CVS every day at their
      jobs.  Their frustration with CVS had led Jim to think carefully
      about better ways to manage versioned data, and he'd already
      come up with not only the name "Subversion", but also with the
      basic design of the Subversion repository.  When CollabNet
      called, Karl immediately agreed to work on the project, and Jim
      got his employer, RedHat Software, to essentially donate him to
      the project for an indefinite period of time.  CollabNet hired
      Karl and <NAME>, and detailed design work began in
      May.  With the help of some well-placed prods from Brian
      Behlendorf and <NAME> of CollabNet, and <NAME> (at
      the time an independent developer active in the WebDAV/DeltaV
      specification process), Subversion quickly attracted a community
      of active developers.  Many people had had frustrating
      experiences with CVS, and welcomed the chance to finally do
      something about it.</para>

    <para>The original design team settled on some simple goals.  They
      didn't want to break new ground in version control methodology,
      they just wanted to fix CVS.  They decided that Subversion would
      match CVS's features, and preserve the same development model,
      but not duplicate CVS's most obvious flaws.  And although it did
      not need to be a drop-in replacement for CVS, it should be
      similar enough that any CVS user could make the switch with
      little effort.</para>

    <para>After fourteen months of coding, Subversion became
      <quote>self-hosting</quote> on August 31, 2001.  That is,
      Subversion developers stopped using CVS to manage Subversion's
      own source code, and started using Subversion instead.</para>

    <para>While CollabNet started the project, and still funds a large
      chunk of the work (it pays the salaries of a few full-time
      Subversion developers), Subversion is run like most open-source
      projects, governed by a loose, transparent set of rules that
      encourage meritocracy.  CollabNet's copyright on the code is an
      Apache/BSD-style license, fully compliant with the Debian Free
      Software Guidelines.  In other words, anyone is free to
      download, modify, and redistribute Subversion as he pleases; no
      permission from CollabNet or anyone else is required.</para>

  </sect1>

  <!-- ================================================================= -->
  <!-- ======================== SECTION 3 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-1-sect-3">

    <title>Subversion's Features</title><commit_msg>Remove possibly confusing language about licenses from the book:<commit_after><chapter id="svn-ch-1">

  <title>Introduction</title>

  <simplesect>
    <para>Version control is the art of managing changes to
      information.  It has long been a critical tool for programmers,
      who typically spend their time making small changes to software
      and then undoing those changes the next day.  Imagine a team of
      these programmers working concurrently, and you can see why a
      good system is needed to manage the potential chaos.</para>
  </simplesect>


  <!-- ================================================================= -->
  <!-- ======================== SECTION 1 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-1-sect-1">

    <title>What is Subversion?</title>

    <para>Subversion is a free/open-source version control system.
      That is, Subversion manages files and directories over time.
      A tree of files is placed into a central
      <firstterm>repository</firstterm>.  The repository is much like
      an ordinary file server, except that it remembers every change
      ever made to your files and directories.  This allows you to
      recover older versions of your data, or examine the history of
      how your data changed.  In this regard, many people think of a
      version control system as a sort of <quote>time
      machine</quote>.</para>

    <!-- ### something about Subversion facilitating communication
    between developers?? -->

    <para>Some version control systems are also software configuration
      management (SCM) systems.  These systems are specifically
      tailored to manage trees of source code, and have many features
      that are specific to software development&mdash;such as natively
      understanding programming languages, or supplying tools for
      building software.  Subversion, however, is not one of these
      systems; it is a general system that can be used to manage
      <emphasis>any</emphasis> collection of files, including
      source code.</para>

  </sect1>

  <!-- ================================================================= -->
  <!-- ======================== SECTION 2 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-1-sect-2">

    <title>Subversion's History</title>

    <para>In early 2000, CollabNet, Inc (<systemitem
      class="url">http://www.collab.net</systemitem>) began seeking
      developers to write a replacement for CVS.  CollabNet offers a
      collaboration software suite called SourceCast, of which one
      component is version control.  Although SourceCast used CVS as
      its initial version control system, CVS's limitations were
      obvious from the beginning, and CollabNet knew it would
      eventually have to find something better.  Unfortunately, CVS
      had become the de facto standard in the open source world
      largely because there <emphasis>wasn't</emphasis> anything
      better, at least not under a free license.  So CollabNet
      determined to write a new version control system from scratch,
      retaining the basic ideas of CVS, but without the bugs and
      misfeatures.</para>

    <para>In February 2000, they contacted <NAME>, the author of
      <citetitle>Open Source Development with CVS</citetitle>
      (Coriolis, 1999), and asked if he'd like to work on this new
      project.  Coincidentally, at the time Karl was already
      discussing a design for a new version control system with his
      friend <NAME>.  In 1995 the two had started Cyclic Software,
      a company providing CVS support contracts, and although they
      later sold the business, they still used CVS every day at their
      jobs.  Their frustration with CVS had led Jim to think carefully
      about better ways to manage versioned data, and he'd already
      come up with not only the name "Subversion", but also with the
      basic design of the Subversion repository.  When CollabNet
      called, Karl immediately agreed to work on the project, and Jim
      got his employer, RedHat Software, to essentially donate him to
      the project for an indefinite period of time.  CollabNet hired
      Karl and <NAME>, and detailed design work began in
      May.  With the help of some well-placed prods from Brian
      Behlendorf and <NAME> of CollabNet, and <NAME> (at
      the time an independent developer active in the WebDAV/DeltaV
      specification process), Subversion quickly attracted a community
      of active developers.  Many people had had frustrating
      experiences with CVS, and welcomed the chance to finally do
      something about it.</para>

    <para>The original design team settled on some simple goals.  They
      didn't want to break new ground in version control methodology,
      they just wanted to fix CVS.  They decided that Subversion would
      match CVS's features, and preserve the same development model,
      but not duplicate CVS's most obvious flaws.  And although it did
      not need to be a drop-in replacement for CVS, it should be
      similar enough that any CVS user could make the switch with
      little effort.</para>

    <para>After fourteen months of coding, Subversion became
      <quote>self-hosting</quote> on August 31, 2001.  That is,
      Subversion developers stopped using CVS to manage Subversion's
      own source code, and started using Subversion instead.</para>

    <para>While CollabNet started the project, and still funds a large
      chunk of the work (it pays the salaries of a few full-time
      Subversion developers), Subversion is run like most open-source
      projects, governed by a loose, transparent set of rules that
      encourage meritocracy.  CollabNet's copyright license is fully
      compliant with the Debian Free Software Guidelines.  In other
      words, anyone is free to download, modify, and redistribute
      Subversion as he pleases; no permission from CollabNet or anyone
      else is required.</para>

  </sect1>

  <!-- ================================================================= -->
  <!-- ======================== SECTION 3 ============================== -->
  <!-- ================================================================= -->
  <sect1 id="svn-ch-1-sect-3">

    <title>Subversion's Features</title>
{'fraction_non_alphanumeric': 0.14091680814940577, 'fraction_numerical': 0.005710757832998919, 'mean_word_length': 3.342828418230563, 'pattern_counts': {'":': 0, '<': 125, '<?xml version=': 0, '>': 125, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '883053', 'n_tokens_mistral': 3144, 'n_tokens_neox': 2936, 'n_words': 1514}