<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css"> /* <![CDATA[ */
  @import "tigris-branding/css/tigris.css";
  @import "tigris-branding/css/inst.css";
  /* ]]> */</style>
<link rel="stylesheet" type="text/css" media="print"
  href="tigris-branding/css/print.css"/>
<script type="text/javascript" src="tigris-branding/scripts/tigris.js"></script>
<title>Getting Subversion</title>
</head>

<body>
<div class="app">

<div class="h2">
<h2>Building Subversion</h2>

<p>If you want to build Subversion from a source release:</p>

<ol>

   <li><p>Download the latest tarball distribution from the <a
   href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260"
   >Source Releases Area</a>.<br />
   Windows users should download <tt>.zip</tt> files.  For all other operating
   systems, download <tt>.tar.gz</tt> or <tt>.tar.bz2</tt> files.</p></li>

   <li><p>Build and install it according to the instructions in the
   <a href="http://svn.collab.net/repos/svn/trunk/INSTALL">INSTALL</a>
   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>

</ol>

<p>Now you have the latest released version of Subversion installed.
Read the <a href="http://svnbook.red-bean.com">Subversion Book</a> to
learn how to use Subversion, and to see how it differs from CVS.</p>

<p>If you want stability, you can stop here, and just upgrade as new
releases come out.  If you prefer to stay current with Subversion
development, then use your newly-installed Subversion client to check
out a working copy of the master sources:</p>

<pre>
   $ svn co http://svn.collab.net/repos/svn/trunk subversion
</pre>

<p>That will get you a new working copy directory named
<code>subversion/</code>, containing the latest sources.  (If you're
behind a proxy or have problems with the checkout, see the <a
href="faq.html#proxy">proxy faq</a>.)  Read the <a
href="http://svn.collab.net/repos/svn/trunk/INSTALL">INSTALL</a> file
for instructions on building in the working copy, which differs
slightly from building a released tarball.</p>

<p>See the <a
href="http://subversion.tigris.org/inconveniences.html">Warnings and
Inconveniences Page</a> for the most annoying bugs and their
workarounds; see the <a
href="http://subversion.tigris.org/project_issues.html">Issue
Tracker</a> for a complete list of known bugs, and instructions on
filing new bugs.</p>

</div>

<div class="h2">
<h2>Contributing To The Project</h2>

<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 <a
      href="http://svn.collab.net/repos/svn/trunk/HACKING">
      HACKING</a> 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>
</div>

</div>
</body>
</html>
