CTM(1)

NAME
ctm - source code mirror program

SYNOPSIS
ctm [-cFpPqv] [-b basedir] [-T tmpdir] [-V level] file [...]

DESCRIPTION
Ctm was originally “Cvs Through eMail”, but now instead it seems more fitting to call it “Current Through eMail”. 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.

  Usage
To apply a CTM delta, you pass it to the 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 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 name ctm first checks for the existence of the file name#ctm. If this file exists, 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, 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. Ctm will extract the file hierarchy below its working directory. Absolute filenames or filenames containing references through ‘’. and ‘..’ are explicitly prohibited as a security measure.

  Options
-b basedir
    Prepend the path basedir on every filename.
-c  Check it out, don't do anything.
-F  Force.
-p  Less paranoid.
-P  Paranoid.
-q  Tell us less.
-T tmpdir
    Put temporary files under tmpdir.
-v  Tell us more.
-V level
    Tell us more. Level is the level of verbosity.

FILES
.ctm_status contains the sequence number of the last CTM delta applied. Changing or removing this file will greatly confuse ctm.

EXAMPLES

    cd ~cvs
    /usr/sbin/ctm ~ctm/cvs-*

DIAGNOSTICS
Numerous messages, hopefully self-explaining. The “noise level” can be adjusted with the -q and -v options.

SEE ALSO
ctm(5)

HISTORY
Initial trials ran during the FreeBSD 1.1.5, and many bugs and methods were hashed out. The ctm command appeared in FreeBSD 2.1.

AUTHORS
The CTM system has been designed and implemented by Poul-Henning Kamp <phk@FreeBSD.org>. Joerg Wunsch wrote this man-page. <joerg@FreeBSD.org>.