<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
<style type="text/css">
/* <![CDATA[ */ @import "/branding/css/tigris.css"; /* ]]> */
</style>
  <script src="/branding/scripts/sc.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="/branding/css/print.css" media="print" />

  <title>Project source code</title>
 </head>

 <body class="docs" onload="self.focus()">
  <div class="docs" id="projectsource">
   <h2>Project Source code</h2>

   <div id="toc">
    <ul>
     <li><strong><a href="/nonav/servlets/HelpTOC">Help index</a></strong></li>
    </ul>

    <ul>
     <li><a href="/nonav/docs/Learning.html">Learning about projects</a></li>

     <li>
      <a href="/nonav/docs/ProjectMemberResources.html">Project resources for members</a> 

      <ul>
       <li><a href="/nonav/docs/ProjectHome.html">Project Home Page</a></li>

       <li><a href="/nonav/docs/ProjectNews.html">Project News</a></li>

       <li><a href="/nonav/docs/ProjectMemberList.html">Project Membership</a></li>

       <li><a href="/nonav/docs/ProjectMail.html">Project Mailing Lists</a></li>

       <li><a href="/nonav/docs/ProjectDocuments.html">Project Documentation</a></li>

       <li>
        Project Source Code 

        <ul>
         <li><a href="#browsesource">Browsing a project's source repository with ViewCVS</a></li>

         <li><a href="#getsource">Getting your working copy of project source code files</a></li>

         <li><a href="#cvsclients">CVS client downloads</a></li>
        </ul>
       </li>

       <li><a href="/nonav/docs/ProjectIssues.html">Issue Tracking</a></li>
      </ul>
     </li>

     <li><a href="/nonav/docs/hostedtools.html">Hosted tools</a></li>

     <li><a href="/nonav/docs/ProjectAdd.html">Creating a new project</a></li>
    </ul>

    <ul>
     <li><a href="/nonav/docs/ddCVS.html">About CVS versioning control</a></li>

     <li><a href="/nonav/docs/ddCVS_cvsglossary.html">A version control glossary</a></li>

     <li><a href="/nonav/docs/ddUsingWinCvs.html">Site guide for using WinCVS</a></li>

     <li><a href="/nonav/docs/ddUsingCVS_command-line.html">Site guide for using command line CVS</a></li>
    </ul>
   </div>

   <h3><a id="browsesource" name="browsesource">Browsing a project's source code repository with ViewCVS</a></h3>

   <p>Before beginning work in a project, you should take time to learn how the project files are organized. You will want to become familiar with the directory structures as well as any CVS "modules" that have been defined by project members.</p>

   <ol>
    <li>From your Project Home page, click on <b>Source code</b> on the left navigation bar.</li>

    <li>Click on "Browse source code" to access the project's source repository through ViewCVS.</li>
   </ol>

   <p>Each project's web content files are located in the myproject/www module by default. Each project has two predefined modules: www and look. Other project source modules are created and organized by project owner or project members with CVS write permissions. If browsing deleted and removed project files is permitted, an "Attic/" module is displayed.</p>

   <ul>
    <li><a href="/nonav/docs/ddSourceBrowse.html">More information about ViewCVS</a></li>
   </ul>

   <h3><a id="getsource" name="getsource">Getting your working copy of project source code</a></h3>

   <p>To obtain (or "check out") your own working copy of project files, step-by-step instructions are included on the <a href="/nonav/docs//servlets/ProjectSource">Project Source</a> page for both command line CVS and WinCvs. These instructions also show the exact cvsroot to set for the current project. The <i>cvsroot</i> points to the server location of the project's source code.</p>

   <p>A <i>working copy</i> refers to the replicated set of project source code you maintain and modify on your own local machine. If you are new to CVS, this is an important CVS concept to understand. These files reside in your workspace, and the CVS server does not track or know anything about your changes (or other developers' changes) until you commit modified files or add newly created files back into the main project repository.</p>

   <p>This may be different from other versioning systems which explicitly track creation of workspaces. With CVS, you can check out working copies as many times as necessary. Keep in mind, however, that files in the project repository continually change over time as to reflect other developer contributions as the project progresses. It's critical to keep your working copies of files up to date with the repository.</p>

   <h3><a id="cvsclients" name="cvsclients">CVS client downloads</a></h3>

   <p>You can download CVS clients for command line, Windows, or Mac and other developer tools at <a href="http://www.collab.net/developers/tools/">http://www.collab.net/developers/tools/</a>.</p>
   <div class="courtesylinks">
    <p><a href="#toc">Top</a> | <a href="/nonav/servlets/HelpTOC">Help index</a></p>
   </div>
  </div>
 </body>
</html>


