From LinuxMIPS
Jump to navigationJump to search

CVS has been retired at The anonymous CVS server will stay running so people can continue to do cvs diff and other operations on any old checkouts they may still have sitting around but the content of the archive is now frozen since 2005 and will remain so.

Anonymous CVS

Using CVS, you can checkout the Linux/MIPS source tree with the following commands where you insert linux, libc, gdb or faq for <repository>.

    cvs -d login
    (Only needed the first time you use anonymous CVS, the password is "cvs")
    cvs -d co -r <tag> <repository>

The "linux" repository contains a linux_2_2, linux_2_4 branch and Linux 2.6 on the trunk.

There used to be the linux-cvs and linux-cvs-patches mailing lists for information on what gets committed to this repository. Due to freezing the CVS archive there won't be any further postings to these lists which thus have been deleted. The archives however will be kept.

There is also the "malta/linux" repository which is a special tree especially tuned for stability on Malta. It's usually quite far behind the main linux repository and is being phased out in favor for full-blown Malta support in the main linux CVS tree which in turn has been superseeded by the GIT tree. To checkout a stable 2.4 kernel use the tag MaltaRef_2_4 and for 2.6 MaltaRef_2_6.

More on a historical note, there also is a linux-2.0 repository. The CVS Linux 2.0 version is a backport of the massive MIPS improvments during the 2.1 series which was created for Cobalt when it became clear that 2.2 would not be released in time to ship with the Cobalt products. Thus it only supports early versions of the Cobalt MIPS hardware. Of interest only to cyber archeologists.


Via cvsweb, you have direct access to the new Linux/MIPS kernel sources, and a few other projects hosted in the same CVS archive. The intuitive interface allows you to follow the development at the click of your mouse. Except of course that it's been obsoleted by git.

CVS tags converted to git

When converting the kernel CVS repository to git the tags were recreated by a script, not through conversion. As such it is possible that the CVS tag and its equivalent git tag refer to slightly different versions; we haven't verified that. Also, CVS didn't allow the "." character to be part of a tag name, so CVS tags used to look like linux_2_6_12 - counterintuitive. Git doesn't have such restrictions and so the tags' name has become linux-2.6.12.


XCVS is a system that allows breaks up commits of a CVS repository into individual commits. It allows searching them by a number of criteria. The XCVS database used to be updated nightly from the kernel repository only. With the replacement of CVS by git the CVS repository's contents got frozen and so the XCVS database updates were disabled. For sake of backward compatibility the XCVS web front end is still available but Gitweb is far preferable, gives access to all public git repositories on and new commits will show immediately in Gitweb.

CVS over Rsync

The CVS repository can also be fetched using rsync:

    rsync -avz --progress --stats rsync:// /local/directory
    rsync -avz --progress --stats rsync:// /local/directory

You can then check it out using:

    cvs -d/local/directory co linux  (optionally, throw in -r linux_X_Y_Z for a specific branch)

The Git CVS server

Git now has aquired the ability to deliver it's content over the venerable CVS protocol. While inferior in endless ways it's the easy way to stay uptodate for existing CVS users. Usage is slightly different, so here's a special cooking receipe. First, there is no need to do a cvs login, just use the username anonymous. Specify the git repository for the CVS repository and the git branch as the CVS module name. Example:

cvs -d co -d linux -P master

This will checkout the git master branch from the linux.git repository into a local subdirectory named linux. Similarly you can use this with the linux-malta.git repository like this:

cvs -d co -d linux -P MaltaRef_2_6

which will checkout the MaltaRef_2_6 branch from the linux-malta.git repository.

The RCS revision numbers of file versions are different between the CVS archive and the GIT-CVS archive. This means you cannot just switch an existing checkout from the CVS to the GIT-CVS server. Also note that because git-cvsserver may be very slow if it has to re-index the git tree. Depending on circumstances this may take an hour. If it happens, take this as fate's hint to switch to git. Git has a steep learning curve but you'll be glad you did.

The git-cvsserver is only available for the ralf/linux.git and linux-malta.git repositories used in above two examples.