<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2015-04-06 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>OpenCMIS Commons Implementation &#x2013; Source Repository</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20150406" />
    <meta http-equiv="Content-Language" content="en" />
        
        </head>
  <body class="composite">
    <div id="banner">
                                      <a href="../.." id="bannerLeft">
                                                <img src="../../images/chemistry-logo.png" alt="Apache Chemistry OpenCMIS" />
                </a>
                              <a href="http://www.apache.org/" id="bannerRight">
                                                <img src="../../images/apache-logo.gif" alt="The Apache Software Foundation" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                    
                <div class="xleft">
        <span id="publishDate">Last Published: 2015-04-06</span>
                      </div>
            <div class="xright">        
                    
                 <span id="projectVersion">Version: 0.13.0</span>
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                    
                                <h5>Parent Project</h5>
                  <ul>
                  <li class="none">
                          <a href="../../index.html" title="Apache Chemistry OpenCMIS">Apache Chemistry OpenCMIS</a>
            </li>
          </ul>
                       <h5>Project Documentation</h5>
                  <ul>
                                                                                                                                                                                                                                                                                                      <li class="expanded">
                          <a href="project-info.html" title="Project Information">Project Information</a>
                    <ul>
                      <li class="none">
                          <a href="index.html" title="About">About</a>
            </li>
                      <li class="none">
                          <a href="plugin-management.html" title="Plugin Management">Plugin Management</a>
            </li>
                      <li class="none">
                          <a href="distribution-management.html" title="Distribution Management">Distribution Management</a>
            </li>
                      <li class="none">
                          <a href="dependency-info.html" title="Dependency Information">Dependency Information</a>
            </li>
                      <li class="none">
            <strong>Source Repository</strong>
          </li>
                      <li class="none">
                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
            </li>
                      <li class="none">
                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
            </li>
                      <li class="none">
                          <a href="integration.html" title="Continuous Integration">Continuous Integration</a>
            </li>
                      <li class="none">
                          <a href="plugins.html" title="Project Plugins">Project Plugins</a>
            </li>
                      <li class="none">
                          <a href="license.html" title="Project License">Project License</a>
            </li>
                      <li class="none">
                          <a href="team-list.html" title="Project Team">Project Team</a>
            </li>
                      <li class="none">
                          <a href="project-summary.html" title="Project Summary">Project Summary</a>
            </li>
                      <li class="none">
                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
            </li>
              </ul>
        </li>
                                                                                      <li class="collapsed">
                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
                  </li>
          </ul>
                       <h5>Chemistry</h5>
                  <ul>
                  <li class="none">
                          <a href="../../.." title="Main Website">Main Website</a>
            </li>
          </ul>
                                                                                                                               <a href="http://maven.apache.org/" title="Maven" class="poweredBy">
        <img class="poweredBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"     />
      </a>
                       
                    
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section">
<h2><a name="Overview"></a>Overview</h2><a name="Overview"></a>
<p>This project uses <a class="externalLink" href="http://subversion.apache.org/">Subversion</a> to manage its source code. Instructions on Subversion use can be found at <a class="externalLink" href="http://svnbook.red-bean.com/">http://svnbook.red-bean.com/</a>.</p></div>
<div class="section">
<h2><a name="Web_Access"></a>Web Access</h2><a name="Web_Access"></a>
<p>The following is a link to the online source repository.</p>
<div class="source">
<pre><a class="externalLink" href="http://svn.apache.org/viewvc/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-commons/chemistry-opencmis-commons-impl">http://svn.apache.org/viewvc/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-commons/chemistry-opencmis-commons-impl</a></pre></div></div>
<div class="section">
<h2><a name="Anonymous_access"></a>Anonymous access</h2><a name="Anonymous_access"></a>
<p>The source can be checked out anonymously from SVN with this command:</p>
<div class="source">
<pre>$ svn checkout http://svn.apache.org/repos/asf/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-commons/chemistry-opencmis-commons-impl chemistry-opencmis-commons-impl</pre></div></div>
<div class="section">
<h2><a name="Developer_access"></a>Developer access</h2><a name="Developer_access"></a>
<p>Everyone can access the Subversion repository via HTTP, but Committers must checkout the Subversion repository via HTTPS.</p>
<div class="source">
<pre>$ svn checkout https://svn.apache.org/repos/asf/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-commons/chemistry-opencmis-commons-impl chemistry-opencmis-commons-impl</pre></div>
<p>To commit changes to the repository, execute the following command to commit your changes (svn will prompt you for your password)</p>
<div class="source">
<pre>$ svn commit --username your-username -m &quot;A message&quot;</pre></div></div>
<div class="section">
<h2><a name="Access_from_behind_a_firewall"></a>Access from behind a firewall</h2><a name="Access_from_behind_a_firewall"></a>
<p>For those users who are stuck behind a corporate firewall which is blocking HTTP access to the Subversion repository, you can try to access it via the developer connection:</p>
<div class="source">
<pre>$ svn checkout https://svn.apache.org/repos/asf/chemistry/opencmis/tags/chemistry-opencmis-0.13.0-RC1/chemistry-opencmis-commons/chemistry-opencmis-commons-impl chemistry-opencmis-commons-impl</pre></div></div>
<div class="section">
<h2><a name="Access_through_a_proxy"></a>Access through a proxy</h2><a name="Access_through_a_proxy"></a>
<p>The Subversion client can go through a proxy, if you configure it to do so. First, edit your &quot;servers&quot; configuration file to indicate which proxy to use. The file's location depends on your operating system. On Linux or Unix it is located in the directory &quot;~/.subversion&quot;. On Windows it is in &quot;%APPDATA%\Subversion&quot;. (Try &quot;echo %APPDATA%&quot;, note this is a hidden directory.)</p>
<p>There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.</p>
<p>Example: Edit the 'servers' file and add something like:</p>
<div class="source">
<pre>[global]
http-proxy-host = your.proxy.name
http-proxy-port = 3128
</pre></div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
              Copyright &#169;                    2009&#x2013;2015
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
                  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
