<p>The complete source code for AMP is publicly available from the
Eclipse.org CVS repository. See the <a href="building.php">building</a> page for more information on what's there.</p>
<p>In order to use the following repository locations, copy the
location URL, open the <i>CVS repository exploring</i> perspective and
paste it in.</p>

<h3>Browse Repository</h3>
<p>If you just want to browse the source code without checking out
all the projects, you can use this link: <a
	href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.amp/?root=Modeling_Project">Browse
AMP source code</a></p>

<h3><span class="editsection">CVS Anonymous Access</span></h3>
<table>
<tr><td><i>Connection type:</i></td><td>pserver</td></tr>
<tr><td><i>User:</i></td><td>anonymous</td></tr>
<tr><td><i>Password:</i></td><td>[none]</td></tr>
<tr><td><i>Host:</i></td><td>dev.eclipse.org</td></tr>
<tr><td><i>Path:</i></td><td>/cvsroot/modeling</td></tr>
<tr><td><i>Module:</i></td><td>/org.eclipse.amp</td></tr>
</table>

<h3><span class="editsection"> Committer CVS Access</span></h3>
<p>Same details as above, except:
<table>
<tr><td><i>Connection type:</i></td><td>extssh</td></tr>
<tr><td><i>User:</i></td><td>If you're a committer you'll have one!</td></tr>
<tr><td><i><i>Password:</i></td><td>It's a secret!</td></tr>
</table>

 <i>extssh</i> as the
connection type and specific username/password as assigned by Eclipse.</p>

