<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>Developing Apache Axis2</title>
</head>

<body lang="en">
<h1>Developing Apache Axis2</h1>

<p>This document will give you information on how to use SVN in order
to get a SVN checkout/update and making commits to source repository.</p>

<h2>Content</h2>
<ul>
  <li><a href="#svn">Working with Subversion (SVN)</a></li>
  <li><a href="#checkout">Checkout Axis2 from Subversion</a></li>
</ul>
<a name="svn"></a>

<h2>Working with Subversion (SVN)</h2>

<p>The Axis2/C development team uses Subversion (SVN)
for source control.Subversion is a compelling replacement for CVS, developed
under the auspices of the Tigris community and is licensed under an
Apache compatible license. To learn more about Subversion or to download the
latest distribution, visit <a href="http:///subversion.tigris.org"
target="_blank">Subversion project site</a>. If you are looking for
guidelines on setting up/installing Subversion, please read the ASF 
<a href="http://www.apache.org/dev/version-control.html"
target="_blank">Source Code Repositories page</a>.</p>
<a name="checkout"></a>
<h2>Checkout Axis2/C From Subversion</h2>
<p>When checking out the latest version of Apache Axis2/C
from the Apache Foundation's Subversion repository you must use one of
the following URLs depending on your level of access to the Axis2/C source
code:</p>
<ul>
  <li><b>If you are not a committer:</b>Use <a
    href="http://svn.apache.org/repos/asf/webservices/axis2/trunk/c"
    target="_blank">http://svn.apache.org/repos/asf/webservices/axis2/trunk/c</a></li>
  <li><b>If you are a committer:</b>Use <a
    href="https://svn.apache.org/repos/asf/webservices/axis2/trunk/c"
    target="_blank">https://svn.apache.org/repos/asf/webservices/axis2/trunk/c</a></li>
</ul>
If you are a committer, make sure that you have set your svnpasswd. 
To do this you must log into svn.apache.org.  For more information,
please read the ASF <a href="http://www.apache.org/dev/version-control.html"
target="_blank">Source Code Repositories page</a>.

<p>Once you have successfully installed Subversion, you can
checkout Axis2/C trunk by running the following command:</p>

<p><strong>svn co &lt;repository URL&gt; &lt;folder name&gt;</strong></p>

<p>where 'repository URL' is one of the URLs from the previous list
and 'folder name' is the name of the folder into which the source code is to be
checked out.</p>
<br/>
<p>To update your working copy to the latest version from the repository
execute:</p>
<p><strong>svn update</strong></p>
<br/>
<p>If you would like to submit a patch, execute:</p>
<p><strong>svn diff</strong></p>
<p>above command would create a unified diff that could be attached to the Apache
Axis2/C JIRA issue tracker.</p>
<br/>
</body>
</html>
