Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
aecvsserver(1)							aecvsserver(1)

NAME
	aecvsserver - serve CVS	client protocol	against	Aegis projects

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, re-
	move, 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 per-
	form a read-only cvs checkout command.

	You can't commit to a project-named module.  This because Aegis	re-
	quires all operations which would change the repository	to be per-
	formed 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 documenta-
	tion 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 proto-
		col'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 Modify	request	change depending on whether it is fol-
	lowed by the commit request or the update request.

   Changes as Modules
	Each Aegis change set also appears to the CVS client as	a module; it's
	name is	project.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 com-
	mand, 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-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-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 (C) 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 Miller   E-Mail:	 pmiller@opensource.org.au
	/\/\*		  WWW:	 http://miller.emu.id.au/pmiller/

Reference Manual		     Aegis			aecvsserver(1)

NAME | SYNOPSIS | DESCRIPTION | MODULES | EXIT STATUS | ENVIRONMENT VARIABLES | COPYRIGHT | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=aecvsserver&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help