CVS repository moved
[kugel-rb.git] / www / cvs.t
blob72df3a60c5b5d56015fddde4de34a48c9c0ef399
1 #define _PAGE_ Accessing source code via CVS
2 #include "head.t"
4 <h2>Browsing the repository</h2>
6 <p>Just go <a href="/viewcvs.cgi/">here</a>.
8 <h2>Daily snapshots</h2>
10 <p>Every night at 6am CET, we build a source tarball and target .mod files
11 from the latest CVS code.  <a href="daily.shtml">Get them here</a>.
13 <h2>Downloading (checking out) the source</h2>
15 <p>You, obviously, need to have <a href="http://www.cvshome.org">CVS</a>
16 installed to do this.
18 <p>Here is a complete list of the available modules:
20 <ul>
21 <li>apps - the source code to the applications
22 <li>firmware - the source code to the firmware library
23 <li>gdb - the gdb stub to use for remote debugging
24 <li>tools - tools for building the firmware
25 <li>uisimulator - a user interface simulator for X11
26 <li>docs - project documentation
27 <li>www - the web page
28 </ul>
30 <p>We have a few other convenient aliases that gets several
31 modules at once for you:
33 <ul>
34 <li> rockbox - gets everything you need to compile and build rockbox for target
35 <li> rockbox-devel - like 'rockbox' but also includes simulators and gdb code
36 <li> rockbox-all - gets everything there is in CVS, all modules
37 <li> website - gets the www and docs modules
38 </ul>
40 <p>The examples below use the 'rockbox' module, since that is what most
41 people are interested in. 
43 <h3>Anonymous read-only checkout</h3>
45 <p>If you are not a registered developer, use this method.
46 When asked for a password, just press enter:
48 <p><tt>cvs -d:pserver:anonymous@rockbox.haxx.se:/cvsroot/rockbox login
49 <br>cvs -z3 -d:pserver:anonymous@rockbox.haxx.se:/cvsroot/rockbox co rockbox</tt>
51 <p>A "rockbox" directory will be created in your current directory, and all
52 the directories and source files go there.
54 <h3>Checkout with write access (for developers)</h3>
56 <p>For this, you need to be added to the writers list by Rockbox administrators. After that, you can login with your username:
58 <p><tt>cvs -d:pserver:<b>username</b>@rockbox.haxx.se:/cvsroot/rockbox login
59 <br>cvs -z3 -d:pserver:<b>username</b>@rockbox.haxx.se:/cvsroot/rockbox co rockbox</tt>
61 <h2>Checking in modifications</h2>
63 <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:
65 <p><tt>cvs commit <b>filename</b></tt>
67 <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:
69 <p><tt>cvs commit -m "This is my change comment" <b>filename</b></tt>
71 <p><strong>Note:</strong> Before checking in modifications, test-build all targets (player, player-old, recorder, player-sim, recorder-sim) to make sure your changes don't break anything.
73 <h2>Updating your repository</h2>
75 <p>Since several people commit to the repository, you will need to periodically
76 synchronize your local files with the changes made by others.
77 This operation is called "update":
79 <p><tt>cvs update -dP</tt>
81 <p>The <b>-d</b> switch tells update to create any new directories that have been created the repository since last update.
82 <br>The <b>-P</b> switch tells update to delete files that have been removed in the repository.
84 <h2>Adding a new file</h2>
86 <p>Adding a file is very simple:
88 <p><tt>cvs add <b>filename</b></tt>
90 <p>If you are adding a binary file, you need to specify the -kb flag:
92 <p><tt>cvs add -kb <b>filename</b></tt>
94 <p>These changes, like any other change, has to be committed before they will be visible on the server.
96 <h2>Querying the status of your files</h2>
98 <p>Sometimes it is interesting to get a list of the status of your files versus
99 those on the remote repository. This is called "status":
101 <p><tt>cvs status</tt>
103 <p>The output from "status" can be rather verbose. You may want to filter it with grep:
105 <p><tt>cvs status | grep Status</tt>
107 <p>To only list files who differ from the server, filter again:
109 <p><tt>cvs status | grep Status | grep -v Up-to-date</tt>
111 <h2>Producing a diff of your changes</h2>
113 <p>If you want to see how your local files differ from the CVS repository,
114 you can ask CVS to show you:
116 <p><tt>cvs diff -u [files(s)]</tt>
118 <p>The <tt>-u</tt> selects the "unified" diff format, which is preferrable
119 when working with source code.
121 <h2>What Happens in the Repository?</h2>
123  Subscribe to the rockbox-cvs list to get mails sent to you for every commit
124  done to the repostory.
126  To join this list, send a mail to majordomo@cool.haxx.se, with the following
127  text in the body (no subject) "subscribe rockbox-cvs".
129  <b>Note</b> that this may cause quite a few mails to get sent during periods
130 of intense development.
132 <h2>Getting rid of the password prompts</h2>
134 <p>Each cvs operation has to be authenticated with ssh. This is normally done
135 by you entering your password. This gets boring fast.
136 Instead, you can register your public ssh key with your SourceForge account. This way, your connection is authenticated automatically.
138 <p><a href="http://sourceforge.net/account/login.php">Log in</a>
139 to your SourceForge account and go to your
140 <a href="https://sourceforge.net/account/">account options</a>.
141 On the bottom of the page, there is a link to
142 <a href="https://sourceforge.net/account/editsshkeys.php">edit your ssh keys</a>.
143 Copy the contents of your local <tt>.ssh/identity.pub</tt> or
144 <tt>.ssh/id_rsa.pub</tt> there.
146 <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.
148 <p>If you work from several different computers/accounts, you must add the key for each account you are using.
150 #include "foot.t"