GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  AECVSSERVER (1)

NAME

aecvsserver - serve CVS client protocol against Aegis projects

CONTENTS

Synopsis
Description
Modules
     Projects as Modules
     Changes as Modules
     Cvsroot
Exit Status
Environment Variables
Copyright
Author

SYNOPSIS

aecvsserver server
aecvsserver pserver
aecvsserver -VERSion

DESCRIPTION

The aecvsserver command is used to serve the CVS client protocol. The repository, of course, is stored within Aegis.

The server works by retrieving file contents from locations within Aegis change sets and repositories. When necessary, appropriate aegis(1) commands are executed by the server to fulfill the requests.

This code is still experimental. At the present time only a limited number of CVS commands are understood. If you would like to extend this code, contributions are welcome. The following commands are thought to work at this time: add, admin, checkout, commit, init, remove, update.

    server

To use the server, you will need to set the following environment variables:

CVSROOT=:ext:hostname/aegis
CVS_RSH=ssh
CVS_SERVER=aecvsserver


    pserver

It is also possible to use aecvsserver as a cvs pserver, with all the usual caveats about how insecure this access method is, because it transmits the password almost in the clear. The root and modules are as above.

MODULES

The CVS concept of modules is mapped onto Aegis concept of projects and changes. The special CVSROOT administrative module is simulated.

    Projects as Modules

Each Aegis project appears to the CVS client as a module; the module’s name is the same as the Aegis project’s name. This type of module isn’t immediately useful except for the cvs export command, or to perform a read[hy]only cvs checkout command.

You can’t commit to a project[hy]named module. This because Aegis requires all operations which would change the repository to be performed through a change set.

It is theoretically possible to code aecvsserver to create a change (via aenc(1) and aedb(1) commands), then add the necessary files (via aenf(1) and aecp(1) commands), then build (via the aeb(1) command), then test (via the aet(1) command), and finally to end development of the change (via the aede(1) command). As the CVS protocol documentation says

"The protocol makes it possible for updates to be atomic with respect to checkins; that is, if someone commits changes to several files in one cvs command, then an update by someone else would either get all the changes, or none of them. The current cvs server can’t do this, but that isn’t the protocol’s fault."
This code is yet to be written. Contributions welcome.

The protocol, however, doesn’t make it particularly easy, either. The semantics of the CW]Modify request change depending on whether it is followed by the CW]commit request or the CW]update request.

    Changes as Modules

Each Aegis change set also appears to the CVS client as a module; it’s name is projectCW].Cnumber. All cvs add commands, cvs remove commands, cvs update commands and cvs commit commands are performed against the change set, not directly to the baseline. It is necessary for the change set to already exist, and once you have run the cvs commit command, it will the be necessary to use the aede(1) command and the rest of the usual Aegis process.

Once a change is no longer in the being developed state, it cannot be changed via aecvsserver(1) and you will need to create a new Aegis change set, and then cvs checkout a new client[hy]side work area.

Please note: if you are experimenting with the interface via cvs -d :fork:/aegis or similar, the work area you create must be outside the Aegis change set’s development directory.

    CVSROOT

The CVSROOT module’s contents are synthesized from Aegis meta[hy]data. You can’t add or modify files in this module; you need to administer Aegis directly with aegis(1) commands.

EXIT STATUS

The aecvsserver command will exit with a status of 1 on any error. The aecvsserver command will only exit with a status of 0 if there are no errors.

ENVIRONMENT VARIABLES

See aegis(1) for a list of environment variables which may affect this command. See aepconf(5) for the project configuration file’s project_ specific field for how to set environment variables for all commands executed by Aegis.

COPYRIGHT

aecvsserver version 4.25.D510
Copyright © 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Peter Miller

The aecvsserver program comes with ABSOLUTELY NO WARRANTY; for details use the ’aecvsserver -VERSion License’ command. This is free software and you are welcome to redistribute it under certain conditions; for details use the ’aecvsserver -VERSion License’ command.

AUTHOR

Peter MillerE[hy]Mail:pmiller@opensource.org.au
/\/\*WWW:http://miller.emu.id.au/pmiller/
Search for    or go to Top of page |  Section 1 |  Main Index


Reference Manual AECVSSERVER (1) *(N)

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.