|
NAMEaerevml - send and receive RevML change setsSYNOPSISaerevml -Send [ option... ]aerevml -Receive [ option... ] aerevml -Help aerevml -VERSion DESCRIPTIONThe aerevml command is used to send and receive change sets using the RevML format. This format is independent of any particular VC/SCM tool or vendor. It allows export from any RevML capable VC/SCM system and import into any other RevML capable VC/SCM system.The basic function is to reproduce a change, so a command like aerevml -send | aerevml
-receive
may be used to clone a change, though less efficiently than aeclone(1).
The file format used is designed to withstand mail servers, so activities such
as
aerevml -send |
e‐mail | aerevml -receive
(where e‐mail represents sending, transporting and receiving your
e‐mail) will reproduce the change on a remote system. With suitable
tools (such as PGP) is it possible to
aerevml -send | encrypt |
e‐mail | decrypt |
aerevml -receive
The mechanism is also designed to allow web‐based distribution such as
aerevml -send |
web‐server → web‐browser
| aerevml -receive
by the use of appropriate CGI scripts and mailcap entries.
It is possible to support both a “push” model and a “pull” model using this command. For suggestions and ideas for various ways to do this, see the Aegis Users Guide. RevML ProjectThe RevML format is used for copying revision controlled files and change sets between various SCM repositories. The RevML project may be found at http://public.perforce.com/public/revml/index.htmlThe latest RevML DTD may be found at http://public.perforce.com/public/revml/revml.dtd SENDThe send variant takes a specified change, or baseline, and constructs a distribution package containing all of the change attributes and source file attributes and source file contents. The result is compressed, and encoded into a text format which can be sent as e‐mail without being corrupted by the mail transfer agents along the way.OptionsThe following options are understood by the send variant:
This option may be used to specify the compression to be
used. They are listed on order of compression effeciency.
More compression algorithms may be added in the future.
This option may be used to specify the content transfer
encoding to be used. It may take one of the following values:
These encodings may be abbreviated in the same way as comment line options.
RECEIVEThe receive variant takes a change package created by the send variant and creates an Aegis change (see aenc(1)) to implement the change within. Files are added to the change (see aerm(1), aecp(1), aenf(1) and aent(1)) and then the file contents are unpackaged into the development directory.The change is then built (see aeb(1)), differenced (see aed(1)), and tested (see aet(1)). If all of this is successful, development of the change is ended (see aed(1)). The automatic process stops at this point, so that a local reviewer can confirm that the change is desired. NotificationThe aerevml command invokes various other Aegis commands. The usual notifications that these commands would issue are issued.OptionsThe following options are understood by the receive variant:
This option may be used to specify which directory is to
be used. It is an error if the current user does not have appropriate
permissions to create the directory path given. This must be an absolute path.
Caution: If you are using an automounter do not use `pwd` to make an absolute path, it usually gives the wrong answer.
Read the change set from the specified file. The default
is to read it from the standard input. The filename `-' is understood to mean
the standard input.
If your system has libcurl(3), and Aegis was configured to use it at compile time (this is the default if it is available) you will also be able to specify a Uniform Resource Locator (URL) in place of the file name. The relevant data will be downloaded. (The -Verbose option will provide a progress bar.)
SecurityReceiving changes by e‐mail, and automatically committing them to the baseline without checking them, would be a recipe for disaster. A number of safeguards are provided:
Duplicate StormsIn a distributed development environment, it is common for change sets to eventually be propagated back to the originator. There are situations (particularly in some star topologies) where several copies of the package will return to the originator.If these change sets are not detected at the review stage, and are propagated out yet again, there is the possibility of an exponential explosion of redundant change sets being distributed again and again. To combat this, changes are checked after the files are unpacked, but before and build or difference or test is performed. The “aecpu -unchanged” command is used to exclude all files that the local repository already has in the desired form. If no change files remain after this, the change is dropped entirely (see aedbu(1) and aencu(1)). LISTThe list variant can be used to list the contents of a package without actually unpacking it first. The output is reminiscent of the aegis -list change‐details output.OptionsThe following options are understood by the list variant:
Read the change set from the specified file. The default
is to read it from the standard input. The filename `-' is understood to mean
the standard input.
If your system has libcurl(3), and Aegis was configured to use it at compile time (this is the default if it is available) you will also be able to specify a Uniform Resource Locator (URL) in place of the file name. The relevant data will be downloaded. (The -Verbose option will provide a progress bar.)
OPTIONSThe following options to this command haven't been mentioned yet:
See also aegis(1) for options common to all aegis commands. All options may be abbreviated; the abbreviation is documented as the upper case letters, all lower case letters and underscores (_) are optional. You must use consecutive sequences of optional letters. All options are case insensitive, you may type them in upper case or lower case or a combination of both, case is not important. For example: the arguments “-project”, “-PROJ” and “-p” are all interpreted to mean the -Project option. The argument “-prj” will not be understood, because consecutive optional characters were not supplied. Options and other command line arguments may be mixed arbitrarily
on the command line, after the function selectors.
The GNU long option names are understood. Since all option names for aerevml are long, this means ignoring the extra leading '-'. The “--option=value” convention is also understood. EXIT STATUSThe aerevml command will exit with a status of 1 on any error. The aerevml command will only exit with a status of 0 if there are no errors.ENVIRONMENT VARIABLESSee 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.COPYRIGHTaerevml version 4.25.D510Copyright (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 aerevml program comes with ABSOLUTELY NO WARRANTY; for details
use the 'aerevml -VERSion License' command. This is free software and
you are welcome to redistribute it under certain conditions; for details use
the 'aerevml -VERSion License' command.
AUTHOR
Visit the GSP FreeBSD Man Page Interface. |