<html>
<head>
<title>CVS to SVN Crossover Guide</title>
</head>

<body>

<center>
 <h1>CVS to SVN Crossover Guide</h1>
</center>


<h2>Purpose</h2>

<p>This document provides an alternate method of learning Subversion.
Many users dislike learning new technology via a theoretical "top
down" approach, as provided by the <a
href="http://svnbook.red-bean.com">Subversion Book</a>.  Instead, this
document presents Subversion from the "bottom up": it shows a CVS
command or task, and then shows the equivalent task in Subversion
(along with relevant book links.) It's essentially a re-indexing of
topics covered by the book, keyed on CVS tasks.</p>


<h2>Table of Contents</h2>

<ul>

<li>Setup</li>

   <ul>
     <li><a href="#repos_creation">Repository creation</a></li>
     <li><a href="#import">Importing data</a></li>
     <li><a href="#installing">Installing a server</a></li>
     <li><a href="#authenticating">Authenticating to a server</a></li>
     <li><a href="#browsing">Browsing a repository</a></li>
     <li><a href="#checkingout">Checking out a working copy</a></li>
   </ul>

<li>Basic Work Cycle</li>
   <ul>
     <li><a href="#changeditems">Seeing locally changed items</a></li>
     <li><a href="#outofdate">Seeing out-of-date items</a></li>
     <li><a href="#scheduling">Scheduling additions or deletions</a></li>
     <li><a href="#copying">Copying and moving</a></li>
     <li>Undoing local changes</li>
     <li>Updating and committing</li>
     <li>Resolving conflicts</li>
     <li>Adding a binary file</li>
     <li>Using native line-endings</li>
   </ul>

<li>Examining history</li>
   <ul>
     <li>Seeing history of an item</li>
     <li>Comparing two versions of an item</li>
   </ul>

<li>Branching/Tagging/Merging</li>

   <ul>
     <li>Creating a branch</li>
     <li>Moving a working copy to a branch</li>
     <li>Finding the beginning of a branch</li>
     <li>Porting a single change</li>
     <li>Merging a whole branch</li>
     <li>Reverting a committed change</li>
     <li>Resurrecting deleted items</li>
     <li>Creating a tag</li>
     <li>Tweaking a tag</li>
     <li>Seeing all tags</li>
     <li>Comparing two tags</li>
     <li>Seeing logs between two tags</li>
   </ul>

<li>Other tasks</li>
   
   <ul>
     <li>Using modules</li>
     <li>Line endings and keywords</li>
   </ul>

</ul>


<hr>
<!-- =========================================================== -->

<table border="1" cellpadding="2" cellspacing="0">

<!-- =========================================================== -->

<tr>
  <td colspan="2" bgcolor="#ccccff">
    <h2><a name="repos_creation">Repository creation</a></h2>
    <dl>
      <dt>Task Description:</dt>
      <dd>Create a new repository for holding versioned data.</dd>
      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/ch05s02.html">
          Repository Creation and Configuration</a></dd>
    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;cvs&nbsp;-d&nbsp;/usr/local/repos&nbsp;init</tt></dd>

      <dt>Explanation:</dt>

      <dd>Creates a new directory <tt>repos</tt> ready to hold RCS
      files and config scripts.</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svnadmin&nbsp;create&nbsp;/usr/local/repos</tt></dd>

      <dt>Explanation:</dt>

      <dd>Creates a new directory <tt>repos</tt> containing BerkeleyDB
          files and config scripts.</dd>

    </dl>
  </td>
</tr>

<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="import">Importing data</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Populate a new repository with initial data.  Assuming that
      you have a tree of code in the local directory <tt>myproj/</tt>,
      and you want to move this tree into the repository.</dd>

      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/ch05s04.html#svn-ch-5-sect-6.1">
          Choosing a repository layout</a> 
      </dd>
      <dd><a href="http://svnbook.red-bean.com/svnbook/re12.html">
          svn import</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;cd&nbsp;myproj</tt></dd>
      <dd><tt>$&nbsp;cvs&nbsp;-d&nbsp;/usr/local/repos&nbsp;import&nbsp;myproj/&nbsp;none&nbsp;start</tt></dd>

      <dt>Explanation:</dt>

      <dd>This copies the contents of the current working directory to
      a new directory (<tt>myproj</tt>) in the CVS repository.  The
      CVS repository now contains a directory <tt>/myproj/</tt> at the
      top level.</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svn&nbsp;mkdir&nbsp;file:///usr/local/repos/tags</tt></dd>       
      <dd><tt>$&nbsp;svn&nbsp;mkdir&nbsp;file:///usr/local/repos/branches</tt></dd>       
      <dd><tt>$&nbsp;svn&nbsp;import&nbsp;myproj/&nbsp;file:///usr/local/repos/trunk</tt></dd>

      <dt>Explanation:</dt>

      <dd>Though not strictly required, we deliberately create
      <tt>/tags</tt> and <tt>/branches</tt> top-level directories in
      the repository, to hold tags and branches later on.  Then we
      import the contents of the local <tt>myproj/</tt> directory into
      a newly created <tt>/trunk</tt> directory in the
      repository.</tt>
    </dl>
  </td>
</tr>



<!-- =========================================================== -->


<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="installing">Installing a server</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Make the repository available to clients via a network.</dd>

      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/ch06.html">
          Server configuration</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd>(too complex to demonstrate here)</dd>

      <dt>Explanation:</dt>

      <dd>Export the repository via the cvs <em>pserver</em> program.
      It can be launched by either <strong>inetd</strong> or a
      client's <strong>ssh</strong> remote request.</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd>(too complex to demonstrate here)</dd>

      <dt>Explanation:</dt>

      <dd>Export the repository with the <em>Apache 2.0.x</em> server,
      or via the <em>svnserve</em> program.  The latter can run as a
      standalone daemon, can be launched by <strong>inetd</strong>, or
      invoked by a client's <strong>ssh</strong> remote request.</dd>

    </dl>
  </td>
</tr>


<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="authenticating">Authenticating to a server</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Have a network client prove its identity to a version
      control server.</dd>

      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/ch06s02.html">
          Network Model</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;cvs&nbsp;-d&nbsp;:pserver:user@host:/repos&nbsp;<em>command</em>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>When contacting a repository, the client pre-emptively
      "pushes" its authentication credentials at the server.</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svn&nbsp;<em>command</em>&nbsp;<em>URL</em>...</tt></dd>
      <dd><tt>Password&nbsp;for&nbsp;'user':&nbsp;&nbsp;XXXXXXX</tt></dd>

      <dt>Explanation:</dt>

      <dd>The client's authentication credentials are "pulled" from
      the user interactively, and only when the server deems that a
      challenge needs to be made.  (And contrary to popular belief,
      the <tt>--username</tt> and <tt>--password</tt> options are
      merely values to be used <em>if</em> the server issues a
      challenge; they do not "push" the credentials at the
      server.)</tt> </dd>

    </dl>
  </td>
</tr>



<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="browsing">Browsing a repository</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Browse the repository as a filesystem, perusing file
      contents and history as well (older versions of files or
      trees.)</dd>

      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/re14.html">
          svn list</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd>(not possible with commandline client)</dd>

      <dt>Explanation:</dt>

      <dd>Not possible with commandline client.  A third-party web
      server tool such as ViewCVS must be used.</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svn&nbsp;list&nbsp;<em>URL</em>&nbsp;[-r&nbsp;<em>rev</em>]&nbsp;[-v]</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;cat&nbsp;<em>URL</em>&nbsp;[-r&nbsp;<em>rev</em>]</tt></dd>

      <dt>Explanation:</dt>

      <dd>The <tt>svn list</tt> and <tt>svn cat</tt> commands allow
      interactive browsing of a repository (and all previous states of
      a repository) from the commandline.  (The <tt>--verbose [-v]</tt>
      switch displays full listing information.)  If Apache is being
      used as a Subversion server process (i.e. clients access via
      <strong>http://</strong>), then the latest version of the
      repository can be directly browsed by entering <em>URL</em> into
      any web browser.  Additionally, a third-party web server tool
      (such as ViewCVS) can be used with Subversion.</dd>

    </dl>
  </td>
</tr>


<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="checkingout">Checking out a working copy</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Create a workspace on local disk which mirrors a directory
      in the repository.</dd>

      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/ch03s04.html">
          Initial Checkout</a> 
      </dd>
      <dd><a href="http://svnbook.red-bean.com/svnbook/re04.html">
          svn checkout</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;cvs&nbsp;-d&nbsp;/usr/local/repos&nbsp;checkout&nbsp;myproj</tt></dd>
      <dd><tt>U&nbsp;myproj/foo.c</tt></dd>
      <dd><tt>U&nbsp;myproj/bar.c</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>Creates a local directory <tt>myproj</tt> which is a mirror
      of the repository directory <tt>/myproj</tt>.</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svn&nbsp;checkout&nbsp;file:///usr/local/repos/trunk&nbsp;myproj</tt></dd>
      <dd><tt>A&nbsp;&nbsp;myproj/foo.c</tt></dd>
      <dd><tt>A&nbsp;&nbsp;myproj/bar.c</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>Assuming that the original project data was imported into
      the repository <tt>/trunk</tt> directory, this creates a local
      directory <tt>myproj</tt> which is a mirror of the repository
      directory <tt>/trunk</tt>.  Standard Subversion convention is to
      do "mainline" development in <tt>/trunk</tt>.  See branching and
      tagging sections for more details.</dd>

    </dl>
  </td>
</tr>

<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="changeditems">Seeing locally changed items</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Discover which items in the working copy have local
      modifications or are scheduled for addition/deletion.</dd>

      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/ch03s05.html#svn-ch-3-sect-4.3.1">
          Examine Your Changes</a> 
      </dd>
      <dd><a href="http://svnbook.red-bean.com/svnbook/re26.html">
          svn status</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;cvs&nbsp;status</tt></dd>
      <dd><tt>...</tt></dd>
      <dd><tt>File: baz.c&nbsp;&nbsp;&nbsp;Status:&nbsp;Up-to-date</tt></dd>
      <dd><tt>...</tt></dd>
      <dd><tt>$&nbsp;cvs&nbsp;update</tt></dd>
      <dd><tt>M foo.c</tt></dd>
      <dd><tt>U bar.c</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>The <tt>cvs status</tt> command shows whether a file is
      locally modified or out of date, including information about
      working revision and branch info.  Unfortunately, because the
      output is so verbose and hard to read, many users run <tt>cvs
      update</tt> instead, which shows a more compact listing of
      modified files (and of course, it also causes the server to
      merge changes into your working copy.)</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svn&nbsp;status</tt></dd>
      <dd><tt>M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo.c</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>Shows modified files only.  Very fast, as it does not use
      the network.  Does not update your working copy, yet still shows
      a single-line display, much like <tt>svn update</tt>.  To see
      working revision and branch information, run <tt>svn info</tt>.</dd>

    </dl>
  </td>
</tr>

<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="outofdate">Seeing out-of-date items</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Discover which items in the working copy are out-of-date
      (i.e. newer versions exist in the repository.)</dd>

      <dt>Book References:</dt>
      <dd><a href="http://svnbook.red-bean.com/svnbook/ch03s05.html#svn-ch-3-sect-4.3.1">
          Examine Your Changes</a> 
      </dd>
      <dd><a href="http://svnbook.red-bean.com/svnbook/re26.html">
          svn status</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;cvs&nbsp;status</tt></dd>
      <dd><tt>...</tt></dd>
      <dd><tt>File: baz.c&nbsp;&nbsp;&nbsp;Status:&nbsp;Needs&nbsp;Patch</tt></dd>
      <dd><tt>...</tt></dd>
      <dd><tt>$&nbsp;cvs&nbsp;-n&nbsp;update</tt></dd>
      <dd><tt>M foo.c</tt></dd>
      <dd><tt>U bar.c</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>The <tt>cvs status</tt> command shows whether a file is
      locally modified or out of date, including information about
      working revision and branch info.  A less verbose option is to
      run <tt>cvs -n update</tt> instead, which shows a compact
      listing of both out-of-date and locally modified files, without
      actually updating the working copy.</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svn&nbsp;status&nbsp;-u</tt></dd>
      <dd><tt>M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo.c</tt></dd>
      <dd><tt>M&nbsp;&nbsp;*&nbsp;&nbsp;46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bar.c</tt></dd>
      <dd><tt>&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baz.c</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>Shows modified files (<tt>M</tt>) as well as out-of-date
      files (<tt>*</tt>).  Contacts repository, but doesn't modify the
      working copy.  To see working revision and branch information,
      run <tt>svn info</tt>.</dd>

    </dl>
  </td>
</tr>


<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="scheduling">Scheduling additions or deletions</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Schedule a working-copy file or directory to be added or
      removed from the repository.</dd>

      <dt>Book References:</dt> <dd><a
      href="http://svnbook.red-bean.com/svnbook/ch03s05.html#svn-ch-3-sect-4.2">
      Make Changes to Your Working Copy</a>
      </dd>
      <dd><a href="http://svnbook.red-bean.com/svnbook/re01.html">
          svn add</a> 
      <dd><a href="http://svnbook.red-bean.com/svnbook/re08.html">
          svn delete</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;touch&nbsp;foo.c</tt></dd>
      <dd><tt>$&nbsp;cvs&nbsp;add&nbsp;foo.c</tt></dd>
      <dd><tt>cvs&nbsp;server:&nbsp;scheduling&nbsp;file&nbsp;`blah'&nbsp;for&nbsp;addition</tt></dd>
      <dd><tt>cvs&nbsp;server:&nbsp;use&nbsp;'cvs&nbsp;commit'&nbsp;to&nbsp;add&nbsp;this&nbsp;file&nbsp;permanently</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;mkdir&nbsp;new-dir</tt></dd>
      <dd><tt>$&nbsp;cvs&nbsp;add&nbsp;new-dir</tt></dd>
      <dd><tt>Directory&nbsp;new-dir&nbsp;added&nbsp;to&nbsp;the&nbsp;repository</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;rm&nbsp;bar.c</tt></dd>
      <dd><tt>$&nbsp;cvs&nbsp;rm&nbsp;bar.c</tt></dd>
      <dd><tt>cvs&nbsp;remove:&nbsp;scheduling&nbsp;`bar.c'&nbsp;for&nbsp;removal</tt></dd>
      <dd><tt>cvs&nbsp;remove:&nbsp;use&nbsp;'cvs&nbsp;commit'&nbsp;to&nbsp;remove&nbsp;this&nbsp;file&nbsp;permanently</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;rm&nbsp;-rf&nbsp;old-dir/*</tt></dd>
      <dd><tt>$&nbsp;cvs&nbsp;rm&nbsp;old-dir</tt></dd>
      <dd><tt>cvs&nbsp;remove:&nbsp;Removing&nbsp;3bits</tt></dd>
      <dd><tt>...</tt></dd>


      <dt>Explanation:</dt>

      <dd>Schedules a file or directory for addition or removal
      to/from the repository.  The repository will not be changed
      until the user runs <tt>cvs commit</tt>, except for the case of
      adding a directory, which immediately changes the repository.
      Also, directories cannot be truly removed from the repository,
      just emptied out.  (<tt>cvs update -P</tt> will prune empty
      directories from your working copy.)</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;touch&nbsp;foo.c</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;add&nbsp;foo.c</tt></dd>
      <dd><tt>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo.c</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;mkdir&nbsp;new-dir</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;add&nbsp;new-dir</tt></dd>
      <dd><tt>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new-dir</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;rm&nbsp;bar.c</tt></dd>
      <dd><tt>D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bar.c</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;rm&nbsp;old-dir</tt></dd>
      <dd><tt>D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old-dir/file1</tt></dd>
      <dd><tt>D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;old-dir/file2</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>Schedules a file or directory for addition or removal
      to/from the repository.  The repository will not be changed
      until the user runs <tt>svn commit</tt>.  The scheduled
      operations are shown as <tt>A</tt> or <tt>D</tt> by <tt>svn
      status</tt>, and <tt>svn revert</tt> can un-do the scheduling.
      Directories really can be deleted (though as with all deleted
      items, continues to exist in history.)</dd>

    </dl>
  </td>
</tr>


<!-- =========================================================== -->

<tr>
   <td colspan="2" bgcolor="#ccccff">
    <h2><a name="copying">Copying and moving</a></h2>
    <dl>
      <dt>Task Description:</dt>

      <dd>Copy or move/rename a file or directory.</dd>

      <dt>Book References:</dt> <dd><a
      href="http://svnbook.red-bean.com/svnbook/ch03s05.html#svn-ch-3-sect-4.2">
      Make Changes to Your Working Copy</a>
      </dd>
      <dd><a href="http://svnbook.red-bean.com/svnbook/re07.html">
          svn copy</a> 
      <dd><a href="http://svnbook.red-bean.com/svnbook/re18.html">
          svn move</a> 
      </dd>

    </dl>
  </td>
</tr>
<tr valign="top">
  <td>
    <p align="center"><b>CVS</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd>(not possible.)</dd>


      <dt>Explanation:</dt>

      <dd>Not possible, unless an administrator directly mucks with
      RCS files in the repository.  (And in that case, no history
      records the act of copying or renaming.)</dd>

    </dl>
  </td>
  <td>
    <p align="center"><b>Subversion</b></p>
    <dl>
      <dt>Commands:</dt>
      <dd><tt>$&nbsp;svn&nbsp;copy&nbsp;foo.c&nbsp;foo2.c</tt></dd>
      <dd><tt>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo2.c</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;copy&nbsp;dir&nbsp;dir2</tt></dd>
      <dd><tt>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir2</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;move&nbsp;bar.c&nbsp;baz.c</tt></dd>
      <dd><tt>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baz.c</tt></dd>
      <dd><tt>D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bar.c</tt></dd>
      <dd><tt>&nbsp;</tt></dd>
      <dd><tt>$&nbsp;svn&nbsp;move&nbsp;dirA&nbsp;dirB</tt></dd>
      <dd><tt>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirB</tt></dd>
      <dd><tt>D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirA/file1</tt></dd>
      <dd><tt>D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirA/file2</tt></dd>
      <dd><tt>...</tt></dd>

      <dt>Explanation:</dt>

      <dd>The <tt>svn copy</tt> command schedules a file or directory
      for addition to the repository, recording the "source" of the
      copy.  After committing, <tt>svn log</tt> on the copied item
      will trace history back through the original copy-source.  The
      <tt>svn move</tt> command is exactly equivalent to running
      <tt>svn copy</tt>, followed by an <tt>svn delete</tt> on the
      copy-source: the result is a new item scheduled for addition
      (with copy-history attached) and the original item scheduled for
      deletion.</dd>

    </dl>
  </td>
</tr>


<!-- =========================================================== -->

</table>

<!-- =========================================================== -->





<h3>Finding the beginning of a branch</h3>

<p>If you're attempting to merge an entire branch into another, you
need to compare the "root" and "tip" of the source branch, and then
merge those differences into a working copy of the target branch.
Obviously the "tip" of the branch can be represented by using the
<tt>HEAD</tt> keyword.  But how do you find the "birth" revision of
the source branch?</p>

<p>The easiest solution is to run</p>

<pre>
   $ svn log -v --stop-on-copy source-branch-URL
   [...]
</pre>

<p>This command will display every change ever made to the branch, but
<tt>--stop-on-copy</tt> option will cause the output to stop as soon
as detects a copy operation in the branch's history.  By definition,
then, the very last log entry printed will show the copy being made.
It will look something like:</p>

<pre>
r9189 | joe | 2004-03-22 10:10:47 -0600 (Mon, 22 Mar 2004) | 1 line
Changed paths:
   A /branches/mybranch (from /trunk:9188)
</pre>

<p>In this case, you would then know to compare revisions 9189 and
HEAD of the branch in order to perform the merge:</p>

<pre>
   $ svn merge -r9189:HEAD source-branch-URL target-branch-WC
   [...]
</pre>


<hr>
<!-- =========================================================== -->

<h3>Seeing all of a project's tags</h3>

<p>Assuming you've been following a consistent policy for creating
tag-copies, then this is just a matter of running <tt>svn ls</tt> on a
directory containing your tags.  Typically you would run it on the
<tt>/tags</tt> directory in your repository, although you're certainly
free to organize this directory in a more complex way, or invent a
different convention altogether.</p>

<p>As an example, you can see all of Subversion's tags by running:</p>

<pre>
   $ svn ls --verbose http://svn.collab.net/repos/svn/tags
     [...]
       7739 kfogel              Nov 13 22:05 0.33.0/
       7796 josander            Nov 18 12:15 0.33.1/
       7932 josander            Dec 03 17:54 0.34.0/
       8045 josander            Dec 19 15:13 0.35.0/
       8063 josander            Dec 20 11:20 0.35.1/
       8282 josander            Jan 13 14:15 0.36.0/
       8512 josander            Jan 24 17:31 0.37.0/
       8810 kfogel              Feb 23 03:44 1.0.0/
     [...]
</pre>


<h3>Seeing the differences between two tags</h3>

<p>Just use <tt>svn diff</tt> in its fully expanded form, which
compares any two URLs:</p>

<pre>
   $ svn diff tagURL1 tagURL2
   [...]
</pre>


<hr>
<!-- =========================================================== -->


<h3>Seeing logs between two tags</h3>

<p>This is a somewhat common practice in CVS, and is doable in Subversion,
but requires a little bit more work.  Assuming that you've made two
tags of <tt>/trunk</tt> at different points in time, the ultimate goal
here is to run </p>

<pre>
   $ svn log -rX:Y trunkURL
</pre>

<p>...where X and Y are the revisions from which the two tags were
copied.  To discover X and Y, you can use the same technique
described in the previous section ("finding the beginning of a
branch".)  Just use the <tt>--stop-on-copy</tt> option when logging the
history of each tag.  No commits happen on tag directories, so the
following commands should each produce exactly <em>one</em> log
entry:</p>

<pre>
   $ svn log -v --stop-on-copy tag1-URL

   r3520 | joe | 2004-03-12 15:28:43 -0600 (Fri, 12 Mar 2004) | 1 line
   [...]

   $ svn log -v --stop-on-copy tag2-URL
   a
   r4177 | joe | 2004-03-12 15:28:43 -0600 (Fri, 12 Mar 2004) | 1 line
   [...]
</pre>

<p>So in this example, the values of X and Y are 3520 and 4177.  Now
you can view all <tt>/trunk</tt> changes between those two points in time:</p>

<pre>
   $ svn log -r3520:4177 trunkURL
   [...]
</pre>

<hr>
<!-- =========================================================== -->

<h3>Fixing an incorrect tag</h3>

<p>If your tag is a bit off, you can "adjust" it just as people often
do in CVS.  Simply check out a working copy of the tag directory, make
any changes you wish, and commit.</p>

<p>Remember, because branches and tags are directories, they can also
be deleted when they're no longer of any use to your project.  They'll
continue to exist in the repository's history.</p>



<hr>
<!-- =========================================================== -->


<h3>Creating/using "modules"</h3>

<p>Compare CVS Modules vs. svn:externals.</p>


</body>
</html>