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)

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

home | help