Use LCD_WHITE macro - this is defined for both greyscale and colour LCDs
[Rockbox.git] / www / cvs.t
blobdb73a8ea761675c99866a96eed8a3a4a6f968bfc
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 #include "foot.t"