We take as example the FreeBSD kernel. My friend Joe Clark just wouldn't have it any other way.
Sources are under source control. The standard source control systems under Unix are RCS, SCCS and CVS. CVS seems to be the system of choice for the open source world. CVS allows you to sync to a code base across the Internet. Developers can check-out, modify and then check-in code changes and these changes will be immediately delivered to other developers who sync agains the code base regularly.
FreeBSD uses CVSUP. Because it uses Modula-3 I would rather not compile it from source. But binaries are available for both Linux and FreeBSD. See also:
A cvsupfile is required:
*default host=cvsup3.freebsd.org *default base=/usr/src/freebsd *default prefix=/usr/src/freebsd *default release=cvs *default delte use-rel-suffix *default tag=. src-sys src-base src-include src-bin src-sbin src-usrbin src-usrsbin src-crypto src-lib src-libexec src-secure src-sys-crypto src-tools src-etc src-kerberosIV src-kerberos5the base and prefix options determine the local target directory.
cvsup cvsupfileA copy of the kernel base downloaded is this way is in my projects/kernel_sources directory.
Tools help navigate source code. Ctags is a vi add-on that will jump you to a function definition. Cscope is a more advanced tool which will find function definitions as well as all functions which call the function, and so on. Cflow draws a diagram of the interrelations between functions.
LXR is a web-based source code navigation tool. In runs on an http server using Perl scripts. It provides cross referencing for function and type names and, with Glimpse running with it, will do a free-text search on the code base.
In the coming weeks, we will get this up and running. It seems that cscope and the cbrowser GUI front end work on Linux only. gzip's and rpm's.
Wed Feb 7 01:41:10 CST 2001