CTM(5)                    OpenBSD Programmer's Manual                   CTM(5)

NAME
     ctm - source code mirror system

DESCRIPTION
     The ctm transfers data in a specific file format, called a CTM delta.

     CTM deltas consist of control lines and data chunks.  Each control line
     starts with the letters ``CTM'', followed by a CTM statement and control
     data, and ends with a newline (`\n') character.

     Data chunks always belong to the preceding control line, and the last
     field on that control line is the number of bytes in the data chunk.  A
     trailing newline character follows each data chunk. This newline is not
     part of the chunk and isn't included in the count.

     The CTM statements are as follows:

     _BEGIN version name number timestamp prefix
             This is the overall begin of a CTM delta file.  The version field
             must match the program version (currently 2.0). name is the name
             and number the sequence number of the CTM service; it is matched
             against the file .ctm_status to see if the delta has already been
             applied.  timestamp contains the year, month, day, hour, minute,
             and second of the time of delta creation for reference (followed
             by the letter ``Z'', meaning this is a UTC timestamp). The prefix
             field is currently not implemented.

     _END md5
             This statement ends the CTM delta. The global md5 checksum is
             matched against the MD5 checksum of the entire delta, up to and
             including the space (0x20) character following ``_END''.

     FM name uid gid mode md5 count
             Make the file name. The original file had the UID uid (numerical,
             decimal), the GID gid (numerical, decimal), mode mode (numerical,
             octal), and the MD5 checksum md5. The following count bytes data
             are the contents of the new file.

     FS name uid gid mode md5before md5after count
             Substitute the contents of file name. The original file had the
             new UID uid (numerical, decimal), the new GID gid (numerical,
             decimal), new mode mode (numerical, octal), the old MD5 checksum
             md5before, and the new MD5 checksum md5after. The following count
             bytes data are the contents of the new file.  File substitution
             is used if the commands to edit a file would exceed the total
             file length, so substituting it is more efficient.

     FN name uid gid mode md5before md5after count
             Edit the file name. The arguments are as above, but the data sec-
             tions contain a diff(1) -n script which should be applied to the
             file in question.

     FR name md5
             Remove the file name, which must match the MD5 checksum md5.

     AS name uid gid mode
             The original file name changed its owner to uid, its group to
             gid, and/or its mode to mode.

     DM name uid gid mode
             The directory name is to be created. It had originally the owner


             uid, group gid, and mode mode.

     DR name
             The directory name is to be removed.

EXAMPLES
     In the following example, long lines have been folded to make them print-
     able (marked by backslashes).

     CTM_BEGIN 2.0 cvs-cur 485 19950324214652Z .
     CTMFR src/sys/gnu/i386/isa/scd.c,v 5225f13aa3c7e458f9dd0d4bb637b18d
     CTMFR src/sys/gnu/i386/isa/scdreg.h,v e5af42b8a06f2c8030b93a7d71afb223
     CTMDM src/sys/gnu/i386/isa/Attic 0 552 775
     CTMFS .ctm_status 545 552 664 d9ccd2a84a9dbb8db56ba85663adebf0 \
     e2a10c6f66428981782a0a18a789ee2e 12
     cvs-cur 485

     CTMFN CVSROOT/commitlogs/gnu 545 552 664 \
     5d7bc3549140d860bd9641b5782c002d 7fb04ed84b48160c9b8eea84b4c0b6e3 394
     a6936 21
     ache        95/03/24 09:59:50

       Modified:    gnu/lib/libdialog kernel.c prgbox.c
       Log:
     [...]
     CTM_END 74ddd298d76215ae45a077a4b6a74e9c

SEE ALSO
     ctm(1),  ctm_rmail(1),  ed(1)

HISTORY
     Initial trials ran during the work on FreeBSD 1.1.5, and many bugs and
     methods were hashed out.  The CTM system has been made publically avail-
     able in FreeBSD 2.1.

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

OpenBSD 2.6                     March 25, 1995                               2
