2002-04-12 15:30:08 +00:00
#define _PAGE_ Accessing source code via CVS
#include "head.t"
<h2> Browsing the repositry </h2>
<p> Just go < a href = "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/rockbox/" > here </a> .
<h2> Downloading ( checking out ) the source </h2>
2002-04-15 12:39:19 +00:00
<p> You , obviously , need to have < a href = "http://www.cvshome.org" > CVS </a> installed to do this .
2002-04-12 15:30:08 +00:00
2002-04-15 12:39:19 +00:00
<p> The examples below use the 'firmware' module , since that ' s what most people are interested in . Here is a complete list of the available modules:
<ul>
<li> firmware - the source code to the actual firmware
<li> gdb - the gdb stub to use for remote debugging
<li> tools - tools for building the firmware
<li> uisimulator - a user interface simulator for X11
<li> www - the web page
</ul>
<h3> Anonymous read - only checkout </h3>
2002-04-12 15:30:08 +00:00
<p> If you are not a registered developer , use this method .
When asked for a password , just press enter:
<p> <tt> cvs - d:pserver:anonymous @ cvs . rockbox . sourceforge . net: /cvsroot/ rockbox login
<br> cvs - z3 - d:pserver:anonymous @ cvs . rockbox . sourceforge . net: /cvsroot/ rockbox co firmware </tt>
<p> A "firmware" directory will be created in your current directory , and all the source files go there .
2002-04-15 12:39:19 +00:00
<h3> Checkout for developers </h3>
2002-04-12 15:30:08 +00:00
<p> For this , you need to:
<ol>
2002-04-15 12:39:19 +00:00
<li> Have < a href = "http://www.openssh.com" > SSH </a> installed
2002-04-12 15:30:08 +00:00
<li> Have a < a href = "http://sourceforge.net/account/register.php" > SourceForge account </a>
<li> Be a
< a href = "http://sourceforge.net/project/memberlist.php?group_id=44306" > registered developer </a>
of the Rockbox project
2002-04-15 13:31:39 +00:00
<li> Log on to your cvs server account once: <tt> ssh <b> username </b> @ cvs . rockbox . sourceforge . net </tt> <br> It will disconnect you immediately , but now your account is set up .
2002-04-12 15:30:08 +00:00
</ol>
<p> Then run:
<p> <tt> export CVS_RSH = ssh
<br> cvs - z3 - d:ext: <b> username </b> @ cvs . rockbox . sourceforge . net: /cvsroot/ rockbox co firmware </tt>
<h2> Checking in modifications </h2>
2002-04-15 12:39:19 +00:00
<p> CVS is a "no-reserve" version control system . This means that you work on your local files without first reserving them . Any conflicts with other developers are detected when you check - in , or "commit" as it ' s called in CVS:
2002-04-12 15:30:08 +00:00
<p> <tt> cvs commit <b> filename </b> </tt>
<p> This will start an editor and ask you to describe the changes you ' ve made . If you want , you can use the - m command line option to specify the comment right there:
<p> <tt> cvs commit - m "This is my change comment" <b> filename </b> </tt>
<h2> Updating your repository </h2>
<p> Since several people commit to the repository , you will need to periodically
synchronize your local files with the changes made by others .
This operation is called "update" :
2002-04-17 13:28:30 +00:00
<p> <tt> cvs update - dP </tt>
2002-04-12 15:30:08 +00:00
2002-04-17 13:28:30 +00:00
<p> The <b> - d </b> switch tells update to create any new directories that have been created the repository since last update .
<br> The <b> - P </b> switch tells update to delete files that have been removed in the repository .
2002-04-12 15:30:08 +00:00
<h2> Adding a new file </h2>
2002-04-12 15:47:03 +00:00
2002-04-12 15:30:08 +00:00
<p> Adding a file is very simple:
<p> <tt> cvs add <b> filename </b> </tt>
<p> If you are adding a binary file , you need to specify the - kb flag:
<p> <tt> cvs add - kb <b> filename </b> </tt>
<p> These changes , like any other change , has to be committed before they will be visible on the server .
<h2> Querying the status of your files </h2>
<p> Sometimes it is interesting to get a list of the status of your files versus
those on the remote repository . This is called "status" :
<p> <tt> cvs status </tt>
<p> The output from "status" can be rather verbose . You may want to filter it with grep :
<p> <tt> cvs status | grep Status </tt>
<p> To only list files who differ from the server , filter again:
<p> <tt> cvs status | grep Status | grep - v Up - to - date </tt>
<h2> Getting rid of the password prompts </h2>
<p> Each cvs operation has to be authenticated with ssh . This is normally done
by you entering your password . This gets boring fast .
Instead , you can register your public ssh key with your SourceForge account . This way , your connection is authenticated automatically .
<p> < a href = "http://sourceforge.net/account/login.php" > Log in </a>
to your SourceForge account and go to your
< a href = "https://sourceforge.net/account/" > account options </a> .
On the bottom of the page , there is a link to
< a href = "https://sourceforge.net/account/editsshkeys.php" > edit your ssh keys </a> .
Copy the contents of your local <tt> . ssh /identity.pub</ tt > or
<tt> . ssh /id_rsa.pub</ tt > there .
2002-04-13 01:17:52 +00:00
<p> Like many things on SourceForge , the key change doesn 't take effect immediately. You' ll have to wait a few hours until some magic batch job kicks in and puts your keys where they should be . Then you can use cvs without entering your password .
2002-04-12 15:30:08 +00:00
2002-04-13 01:17:52 +00:00
<p> If you work from several different computers / accounts , you must add the key for each account you are using .
2002-04-12 15:30:08 +00:00
#include "foot.t"