ctm.1 revision 15456
----------------------------------------------------------------------------
"THE BEER-WARE LICENSE" (Revision 42):
<joerg@freebsd.org> wrote this file. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you think
this stuff is worth it, you can buy me a beer in return. Joerg Wunsch
----------------------------------------------------------------------------

This manual page is partially obtained from Poul-Hennings CTM README
file.

CTM and ctm(1) by <phk@login.dknet.dk>

$Id: ctm.1,v 1.4 1996/02/05 16:06:44 phk Exp $

.Dd Mar 25, 1995 .Os .Dt CTM 1 .Sh NAME .Nm ctm .Nd source code mirror program .Sh SYNOPSIS .Nm ctm .Op Fl cFpPquv .Op Fl b Ar basedir .Op Fl T Ar tmpdir .Op Fl V Ar level .Ar file Op ... .Sh DESCRIPTION .Nm Ctm was originally .Dq Cvs Through eMail , but now instead it seems more fitting to call it .Dq Current Through eMail . .Nm Ctm is now meant to be the definitive way to make and apply a delta between two versions of a directory tree. There are two parts to this, making the delta and applying it. These are two entirely different things. .Ss Usage To apply a CTM delta, you pass it to the .Nm ctm command. You can pass a CTM delta on stdin, or you can give the filename as an argument. If you do the latter, you make life a lot easier for your self, since the program can accept gzip'ed files and since it will not have to make a temporary copy of your file. You can specify multiple deltas at one time, they will be proccessed one at a time. Deltas that are already applied will be ignored. The .Nm ctm command runs in a number of passes. It will process the entire input file in each pass, before commencing with the next pass. Before working one a file .Ar name .Nm ctm first checks for the existence of the file .Ar name.ctm . If this file exists, .Nm ctm works on it instead. Pass 1 will validate that the input file is OK. The syntax, the data and the global MD5 checksum will be checked. If any of these fail, .Nm ctm will never be able to do anything with the file, so it will simply reject it. Pass 2 will validate that the directory tree is in the state expected by the CTM delta. This is done by looking for files and directories which should/should not exists and by checking the MD5 checksums of files. Pass 3 will actually apply the delta. .Nm Ctm will extract the file hierarchy below its working directory. Absolute filenames or filenames containing references through .Sq . and .Sq .. are explicitly prohibited as a security measure. .Ss Options l -tag -width indent -compact t Fl b Ar basedir Prepend the path .Ar basedir on every filename. t Fl c Check it out, don't do anything. t Fl F Force. t Fl p Less paranoid. t Fl P Paranoid. t Fl q Tell us less. t Fl T Ar tmpdir Put temporary files under .Ar tmpdir . t Fl u Set modification time of created and modified files to the CTM delta creation time. t Fl v Tell us more. t Fl V Ar level Tell us more. .Ar Level is the level of verbosity. .El .Sh FILES

a .ctm_status contains the sequence number of the last CTM delta applied. Changing or removing this file will greatly confuse .Nm ctm . .Sh EXAMPLES d -literal cd ~cvs /usr/sbin/ctm ~ctm/cvs-* .Ed .Sh DIAGNOSTICS Numerous messages, hopefully self-explaining. The .Dq noise level can be adjusted with the .Fl q and .Fl v options. .Sh SEE ALSO .Xr ctm 5 .Sh HISTORY Initial trials ran during the FreeBSD 1.1.5, and many bugs and methods were hashed out. The .Nm ctm command appeared in FreeBSD 2.1. .Sh AUTHORS The CTM system has been designed and implemented by Poul-Henning Kamp .Aq phk@FreeBSD.org . Joerg Wunsch wrote this man-page. .Aq joerg@FreeBSD.org .