### Accessing the uClibc CVS Repository

u C l i b c

Anonymous CVS
We allow anonymous (read-only) CVS access to everyone. The first command you need to run for anonymous CVS access is:
    cvs -d:pserver:anonymous@uclibc.org:/var/cvs login
CVS will prompt you for a password. Just press Enter. This step only needs to be done once, the first time you attempt to access CVS. Once the login is complete, you can then check the list of available CVS modules by running the following command (all on one line):
    cvs -z3 -d:pserver:anonymous@uclibc.org:/var/cvs co -c
If you wish, you can then check out a local copy of any of the available modules. The following is an example of how to grab a copy of the uClibc source code:
        cvs -z3 -d:pserver:anonymous@uclibc.org:/var/cvs co -P uClibc
This will create a directory called uClibc in the current directory which contains the latest and greatest source code for uClibc. I usually create a ~/.cvsrc file with the following things in it, and I recommend you should use the same:
        -z3
        update -dP
        rdiff -u
        diff -ubBwpN
        checkout -P
Once you've checked out a copy of the source tree, you can update your source tree at any time so it is in sync with the latest and greatest by running the command:
    cvs update
Because you've only been granted anonymous access to the tree, you won't be able to commit any changes. Changes can be submitted for inclusion by posting them to the appropriate mailing list.

How to use CVS
If you want to know all the gory details, you will want to visit the CVS main web page. For the impatient, the following is probably about all you need to know:
    cvs checkout -c
Will list the modules available for checkout
    cvs checkout < module name >
Will checkout the named module
    cvs co < module name >
Same thing
    cvs update
Updates your local archive so it is in sync with the repository -- your local updates are left intact. Tries to merge upstream updates into your local updates. You will see the following tags when it is updating your local repository: C means conflict, U means update, P means patched, and M means modified.
    cvs up
Same thing
    cvs update < file name >
Same thing but for just the named file(s)/directory(s).
    cvs commit
Will check in all your work.
    cvs add < file name >
Adds the named file/directory into CVS
    cvs remove < file name >
Removes the named file/directory from the upstream repository.
    cvs rm < file name >
Same thing
    cvs log < file name >
Gives you the complete version history of what has happened to the named file(s). Along with all tags, all commit messages, etc...
    cvs status < file name >
Gives you the current version number of the file(s) in question.
    cvs tag TAGNAME
Tags the versions of everything in the repository with the TAGNAME label.
    cvs tag TAGNAME < file name >
Tags the named file(s) in the repository with the TAGNAME label.
    cvs diff
Gives you the difference between the local repository and the upstream repository.
    cvs diff < file name >
Same but for the named file(s).
    cvs diff -r 1.5 < file name >
Same but gives you the difference between the named file(s) and version 1.5 of the named file(s).
    cvs diff -r TAGNAME < file name >
Same but gives you the difference between the named file(s) and the of the file tagged TAGNAME in the upstream repository.
    cvs rdiff -r TAGNAME module
Gives you a diff (that you can actually use with patch) between the current version of module and the specified tagged version.
    cvs import < directory to import > < name for new module > start
Add a new module into the CVS archive.

Mail all comments, insults, suggestions and bribes to Erik Andersen |  |  |  |  |