Using the Apache CVS Repository
Keeping Up with Apache's Bleeding Edge
The Apache HTTP Server project keeps all of its source files in a central CVS source code repository. As changes are made, they are applied to this master repository; when a release is built, it is assembled from the same repository. But suppose you want to keep up with the latest and greatest Apache developments (and bugs), without having to wait for a release? How would you do it? That's what this article is all about.
Assumptions in This Article
For the rest of this article, I'm going to make the following assumptions:
- your Apache source tree starts at
./apache-1.3/ - your Apache ServerRoot is
/usr/local/web/apache - your Apache DocumentRoot is
/usr/local/web/htdocs - the username under which Apache runs (the value of the
Userdirective in yourhttpd.conffile) isnobody - Code examples appear in
this typeface. Text you type exactly as shown isbold-face; placeholders for which you substitute a real value areitalicised.
All of the cd and other shell commands in this article that
refer to directories use these locations.
Ways of Accessing the Source
Members of the Apache core development team have direct access to the
repository. When one of them makes a change, it's available to all the others
instantly. However, how can that change percolate out to where people who
aren't members of the team can get it and try it out? There are
currently three methods of doing this; each has its own advantages and
disadvantages.
- anonymous CVS
- This method allows you to keep up by accessing a copy of the master
repository. At least two systems currently make such copies at intervals and
allow those copies to be accessed using a generic read-only account. This
'generic' account is similar to the 'anonymous' account used to access FTP
repositories, hence the name 'anonymous CVS,' like 'anonymous FTP.'
Needs: a CVS client. - tarball download
- Synchonising with the sources this way is as simple as pulling down a
compressed
tararchive and unpacking it.
Needs: a Web browser, the ability togunzipfiles, and a tool capable of readingtararchives. - rsync
- The
rsynctool allows you to keep a local directory tree in sync with a remote one. In this case, you can use it to keep your local copy of the Apache sources in lockstep with one of the readonly copies of the master repository.
Needs: anrsyncclient.
Since all of these methods are working on copies of the master repository rather than the master itself, the freshness of your source is directly dependent on the freshness of the copy.
Using the 'Anonymous CVS' Method
This method of playing catch-up involves using CVS itself in client-server
mode. One or more systems out on the Internet periodically make copies of the
master Apache repository, and you use CVS to make a local copy of one of these
and keep up to date with it.
- Advantages
- Once a local copy is established, updates are small--only changes are copied
- You can maintain local customisations in your copy of the tree, and CVS will merge in changes from the master--and let you know when your changes conflict with alterations made to the master
cvs diffmakes it easy to submit local changes to the Apache project for possible inclusion
- Drawbacks
- Requires a CVS client
- Lots of back-and-forth network traffic during an update; can be slow
The currently working anonymous CVS repository is maintained at the Sourcery.Org site. It is refreshed from the master repository every two hours (on the odd-numbered ones).
To obtain ('check out') a copy of the Apache 1.3 source tree, or update an existing checked-out tree, use the following commands:
export CVSROOT=:pserver:anonymous@CVS.Sourcery.Org:/cvs/apache
cvs login
CVS password: anoncvs [not echoed]
cvs checkout apache-1.3
As long as you don't do a cvs�logout, you only need to
log in once. If you want the Apache 2.0 source tree instead, use
apache-2.0 instead of apache-1.3 in the example.
You can avoid having to set the CVSROOT environment
variable every time by cding into the apache-1.3
directory and doing a cvs�update instead of a checkout. The
main disadvantage to that is that it won't pick up any new subdirectories (and
files in 'em) that have been created since the last time you updated your local
copy.
- Skip Ahead
- 1. Keeping Up with Apache's Bleeding Edge
- 2. Keeping Up with Apache's Bleeding Edge
- 3. Keeping Up with Apache's Bleeding Edge
Solid state disks (SSDs) made a splash in consumer technology, and now the technology has its eyes on the enterprise storage market. Download this eBook to see what SSDs can do for your infrastructure and review the pros and cons of this potentially game-changing storage technology.