The
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 '\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 '\n' character follows each data chunk, this
newline is not part of the chunk and is not 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 sections contains an
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
printable
(marked by backslashes).