.\" .\" aegis - project change supervisor .\" Copyright (C) 1999, 2001, 2002, 2004-2008, 2010, 2012 Peter Miller .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . .\" .bp .nh 1 "Aegis Commands for unreconstructed CVS users" .LP This section compares Aegis commands and CVS commands. There can be no exact correspondence, because they are each actually attempting to achieve something different. .TS tab(;); lw(1.8i) lw(1.8i)f(CW) lw(1.8i)f(CW). _ T{ Create a new project. (In both cases, you then have to add content.) T};T{ aenpr T};T{ cvs init T} _ T{ Create a new work area. T};T{ aenc;aedb .br \fIor\fP tkaenc T};T{ mkdir T} _ T{ Copy files into a work area T};T{ aecp T};T{ cvs checkout T} _ T{ Add a new file T};T{ aenf \fIfilename\fP T};T{ cvs add \fIfilename\fP T} _ T{ Add a whole directory tree as new files. T};T{ aenf . T};T{ cvs import T} _ T{ Remove a file T};T{ aerm \fIfilename\fP T};T{ cvs remove \fIfilename\fP T} _ T{ Build in a work area. T};T{ aeb T};T{ make T} _ T{ Bring a work area up\[hy]to\[hy]date with the repository. T};T{ aem .br \fI(however, merging (the \[lq]m\[rq] in aem) is required much less often)\fP T};T{ cvs update T} _ T{ Finish development of a change. T};T{ aede .br \fI(and then it needs to be reviewed and integrated) T};T{ cvs commit T} _ T{ Rename a source file T};T{ aemv \fIold\[hy]name\fP \fInew\[hy]name\fP T};T{ mv; cvs remove; cvs add T} _ T{ Show the differences between the work area and the repository. T};T{ aediff T};T{ cvs diff T} _ T{ Partial commits are forbidden in Aegis. However, it is possible to do something very similar. T};T{ aeclone .br \fIThis clones the whole complete change. Now use\fP aecpu \fPetc, in the cloned change to get rid of the files you don't want to commit yet.\fP T};T{ cvs commit \fIfilename\fP T} _ T{ How do I browse the sources? .sp 0.5 Please note that Aegis has a copy sitting there already. With CVS you have to create one first. T};T{ aecd \-bl .br \fInow look around\fP T};T{ mkdir \fIsomewhere\fP .br cd \fIsomewhere\fP .br cvs checkout .br \fInow look around\fP T} _ T{ How do I find stuff in source files? T};T{ aefind | grep T};T{ find | grep T} _ T{ Clean out everything but primary source files from a work area. T};T{ aeclean T};T{ make clean T} _ T{ Make a separate copy of sources in the repository. T};T{ aecp \-independent T};T{ cvs export T} _ .TE .nh 2 "How do I use a Remote Server?" .LP There is no direct equivalent, but see the section in this document titled "How do I do CVS\[hy]style remote development?" for an explanation of how to simulate this development model using Aegis distributed development tools. For more information on Aegis' distributed development model and tools, see \fIaedist\fP(1) or the "Teamwork" section of the HOWTO, or the "Geographically Distributed Development" chapter of the User Guide. .nh 2 "How do I synchronize an Aegis project with a CVS project?" .LP This situation might occur if you are using Aegis to track your source code changes to a project which is primarily managed in CVS. For this discussion we assume you have a CVS work directory in which you checked out the latest CVS sources. Further we assume that these source files have been imported and integrated into an Aegis project. Then, some time passes, and you have updated your Aegis sources via changes, and the CVS tree has also been updated via commits. The question is how can to synchronize the two source trees. The answer is to use patch files. .LP To import the latest CVS changes, create a copy of the CVS tree. Assume the old CVS tree is called cvs/ and the new copy is called new_cvs/. In the new_cvs/ directory, run "cvs update" to get the newest sources. Then run "diff \-Nur cvs/ new_cvs/ \-x Entries.Log > patchfile" to generate a patchfile showing the differences between the old and new CVS trees. Use \fIaepatch\fP to import this patchfile into an Aegis change, then follow the usual Aegis change procedure (build, test, diff, review, integrate). (The \fIaetar\fP(1) command is another possibility.) .LP To export your changes into CVS, again use \fIaepatch\fP to export your Aegis changes as patchfiles. Apply this patch to your local CVS tree (you might want to make a copy first), then execute "cvs commit" to submit your changes. Or, if you don't have write access to the CVS repository, send the patchfile via other means (\fIe.g.\fP e\[hy]mail) to the project CVS maintainers. .\" vim: set ts=8 sw=4 et :