<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">

<TR>
<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
FACE="Arial, Helvetica, sans-serif">
Project Subversion Source Code
</font></STRONG></TD>
</TR>


<TR>
<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">


<p>

The Subversion sources are now under revision control in a 
<a href="http://svn.collab.net">Subversion repository</a>.  The CVS
repository is obsolete (you can browse the old CVS ChangeLog online
<a href="http://subversion.tigris.org/cvs-changelog.html">here</a>.)

<p>

<i>For the impatient</i>: by pointing your web browser directly at
Subversion's repository, you can <a
href="http://svn.collab.net/repos/svn/">browse the latest source</a>.
Because we use HTTP/WebDAV/DeltaV as our network protocol, we get very
basic 'web' functionality for free.

<p>

<i>For real work</i>: you need to "bootstrap" Subversion.  That is,
use Subversion to check out a working copy of its latest source tree.

<ol>

   <li><p>Download the latest tarball distribution from the <a
   href="http://subversion.tigris.org/servlets/ProjectDownloadList">Downloads
   Page</a>.</p></li>

   <li><p>Build and install it according to the instructions in the
   INSTALL file in the top level of the distribution.  You will end up
   with a 'svn' binary in the subversion/clients/cmdline/ directory
   (or installed in /usr/local/bin/, if you ran 'make install'.)</p></li>

   <li><p>Use it to check out the newest Subversion source:</p>
   <pre>
      $ svn co http://svn.collab.net/repos/svn/trunk -d subversion
   </pre>

   <p>That will get you a new working copy directory named `subversion/',
   containing the latest, bleeding-edge source.</p>
   <p>(Some people have reported DNS lookup errors for `svn.collab.net'.
   The IP address is 216.127.237.133, in case you should need it.)</p></li>
   
   <li>
   <pre>
      cd subversion
      svn status
      svn update
      etc, etc, etc...
   </pre>
   </li>

   <li><p>Now you have a working copy.  Most commands work like you
   would expect.  Many of them have bugs, or misconfigured defaults.
   Many features are missing.  Please make sure you're subscribed to
   dev@subversion.tigris.org if you're going to run this.</p>

   <p>Here's a hint: read the introductory <b>SVN for CVS Users</b> paper
   on the <a href="/servlets/ProjectDocumentList">Docs</a> page.  It
   should help.</p></li>
 
   <li><p>Generally, you should always rebuild and install Subversion
   from your working copy (read the INSTALL and HACKING files).  The
   latest available tarball is still not as recent as an up-to-date
   working copy.  The tarballs are just there to help people
   bootstrap, and (eventually) to provide stability checkpoints.</p></li>

   <li><p>Read the <a
   href="http://subversion.tigris.org/inconveniences.html">Warnings
   and Inconveniences Page</a> for information about some particularly
   annoying bugs and their workarounds.</p></li>
</ol>

</td>
</tr>
</TABLE>
<br>

<p>

<TABLE BORDER="0" CELLPADDING="2" WIDTH="98%" BGCOLOR="white">

<TR>
<TD WIDTH="100%" BGCOLOR="#CCCC99"><STRONG><font color="#000033"
FACE="Arial, Helvetica, sans-serif">
Contributing To The Project
</font></STRONG></TD>
</TR>

<TR>
<TD WIDTH="100%" HEIGHT="100" BGCOLOR="#f0f0f0">

<p>To contribute to Subversion:</p>

     <ul>

     <li><p>Join the developer community mailing lists: (see the <a
      href="/servlets/ProjectMailingListList">Mailing Lists</a>
      page.)</p></li>

     <li><p>The Subversion project more-or-less abides by the <a
      href="http://apr.apache.org/guidelines.html">guidelines</a> used
      by the Apache <a href="http://apr.apache.org/">APR project</a>.
      Please review these.</p></li>

     <li><p>After checking out a copy of the source as described above,
      read the file <b>HACKING</b> at the top of the tree.  It
      describes coding and logging conventions, as well as how to
      build from a working copy.</p></li>

     </ul>
<br>
</td>
</tr>
</TABLE>
<BR>
