Received: (from majordom@localhost)
by hyperreal.org (8.8.5/8.8.5) id NAA13445;
Sun, 13 Jul 1997 13:43:36 -0700 (PDT)
Received: (from coar@localhost)
by hyperreal.org (8.8.5/8.8.5) id NAA13439
for apache-cvs; Sun, 13 Jul 1997 13:43:34 -0700 (PDT)
Date: Sun, 13 Jul 1997 13:43:34 -0700 (PDT)
From: Rodent of Unusual Size
Message-Id: <199707132043.NAA13439@hyperreal.org>
To: apache-cvs@hyperreal.org
Subject: cvs commit: apache-devsite devnotes.html
Sender: apache-cvs-owner@apache.org
Precedence: bulk
Reply-To: new-httpd@apache.org
coar 97/07/13 13:43:33
Added: . devnotes.html
Log:
Rough draft/outline/collection of notes about the nitty-gritty
details of working on Apache.
Revision Changes Path
1.1 apache-devsite/devnotes.html
Index: devnotes.html
===================================================================
Apache Development Notes
Apache Development Notes
This page is intended to provide some basic background about
development nits and the maintenance of the developer site.
Maintaining the Sources
Almost all files relating to Apache, either the actual sources or the
files that aren't part of the distribution, are maintained in a
CVS
repository. Here is the way in which changes are applied:
- Developer checks out a copy of the files on which it wants to
work, into a private working directory:
- % cvs checkout apache
This step only needs to be performed once.
Developer keeps its working directory synchronised with changes
made to the repository:
- % cvs update apache
This should probably be done daily or even more frequently during
periods of high activity.
Developer makes changes to its working copies, makes sure they
work, and generates a patch so others can apply the changes to test
them:
- % cvs diff -c3 apache/src/mod_mime.c > /tmp/foo
(The /tmp/foo file is mailed to the developers list so
they can consider the value/validity of the patch.)
Once other developers have agreed that the change is a Good
Thing, the developer checks the changes into the repository:
- % cvs commit apache/src/mod_mime.c
CVS Modules
There are several different modules in the Apache CVS repository:
- apache
- At the time this document is being written, this is the main
development stream for Apache 1.3. It also contains branches for
the 1.1 and 1.2 versions, though.
To create a directory tree containing the 1.2.x sources,
and call it apache-1.2, change your current directory
to the parent of the tree and then check the 1.2 sources
out as follows:
- % cd /usr/local/apache
% cvs checkout -rAPACHE_1_2_X -d apache-1.2 apache
- apache-site
- This module contains the files that live at
http://www.apache.org/. The directory on the host that
maps to that URL is actually a set of checked-out working copies of
the CVS files.
Note
It is important that the files on the Web host not be modified
directly. If you want or need to change one, check it out into a
private working copy, modify that, commit the
change into CVS, and then perform a cvs update to
bring the host directory into sync with the CVS sources.
The Web site directories are not maintained in synch with
the CVS files automatically. They are manually updated from CVS by
various people as they consider appropriate. This is usually not an
issue, unless a group of files are being updated according to an
ongoing group discussion.
- apache-devsite
- Like the apache-site module, this one is used ot
maintain the files that comprise a Webs site - in this case,
http://dev.apache.org/. Also like the previous module,
the directory on the server is a checked-out working copy of this
module.
Setting Up Remote CVS
Most of the Apache Group members with access to the CVS repository
actually do their work on their local machines and keep synchronised
with the repository through remote CVS. See the
ABOUT APACHE
page for information about how the group works and people get access
to the CVS repository.) One way to set this up using the
ssh (secure shell) tool:
- You need an account on the Apache repository
system. If you've been "voted in" for
direct access to the repository, this should have been set up for
you.
- Include the following in your login files on your
local (UNIX) machine:
- setenv CVSROOT repository-system:/export/home/cvs
setenv CVS_RSH /usr/local/bin/cvs
setenv CVS_SERVER /usr/local/bin/cvs
Adjust the lasat two paths to correctly reflect the locations of
cvs and ssh on your local system.
- Set up the following environment in your account on the Apache
repository system:
- setenv CVSROOT /export/home/cvs/
setenv CVS_RSH /usr/local/bin/ssh
setenv CVS_SERVER /usr/local/bin/cvs
These are the correct locations for the repository system,
so you don't need to edit them.
- Generate and put your ssh public key file in
~/.ssh/authorized_keys on the repository system. This
will allow you to access the repository without having to enter a
passphrase for each CVS operation.