sccs-delta(1)

NAME
sccs-delta, delta - make a delta to an SCCS file

SYNOPSIS

/usr/ccs/bin/delta [-dfhnopsz] [-g sid-list | -gsid-list ]
[-m mr-list | -mmr-list ] [-q [nsedelim]] [-r sid | -rsid ]
[-y [comment]] s.filename...

DESCRIPTION

The delta utility checks in a record of the line-by-line differences made to a checked-out version of a file under SCCS control. These changes are taken from the writable working copy that was retrieved using the SCCS get command (see sccs-get(1)). This working copy does not have the `s.' prefix, and is also referred to as a g-file.

If a directory name is used in place of the s.filename argument, the delta command applies to all s.files in that directory. Unreadable s.files produce an error; processing continues with the next file (if any). The use of `-' as the s.filename argument indicates that the names of files are to be read from the standard input, one s.file per line (requires -y, and in some cases, -m).

delta may issue prompts on the standard output depending upon the options specified and the flags that are set in the s.file (see sccs-admin(1), and the -m and -y options below, for details).

OPTIONS

The following options are supported:

-d  Use command diff(1) instead of bdiff(1). Returns exit status 2 instead of 1 if the s.filename argument is not specified.

-f  In NSE mode, this option allows to enforce a delta even when no p.file exists. The new SID is assigned using the same rules as with get -e.

    This option is an undocumented SUN extension that does not exist in historic sccs implementations.

-h  In NSE mode, this option allows to use diffh(1) for large files.

    This option is currently defunct.

    This option is an undocumented SUN extension that does not exist in historic sccs implementations.

-n  Retain the edited g-file, which is normally removed at the completion of processing.

-p  Display line-by-line differences (in diff(1) format) on the standard output.

-q[nsedelim]
    Enable NSE mode. If NSE mode is enabled, several NSE related extensions may be used. In this release, the value of nsedelim is ignored.

    In NSE mode, delta behaves as if the -o option was specified and never issues a warning about missing id keywords.

    This option is an undocumented SUN extension that does not exist in historic sccs implementations.

-s  Silent. Do not display warning or confirmation messages. Do not suppress error messages (which are written to standard error).

-g sid-list | -gsid-list
    Specify a list of deltas to omit when the file is accessed at the SCCS version ID (SID) created by this delta. This causes the file to be checked out later to differ from the checked in file unless `get -i sid-list' with the same sid-list is specified during checkout. sid-list is a comma-separated list of SIDs. To specify a range of deltas, use a `-' separator instead of a comma, between two SIDs in the list.

-m mr-list | -mmr-list
    If the SCCS file has the v flag set (see sccs-admin(1)), you must supply one or more Modification Request (MR) numbers for the new delta. When specifying more than one MR number on the command line, mr-list takes the form of a quoted, space-separated list. If -m is not used and the standard input is a terminal, delta prompts with `MRs? ' for the list (before issuing the `comments? ' prompt). If the v flag in the s.file has a value, it is taken to be the name of a program to validate the MR numbers. If that validation program returns a non-zero exit status, delta terminates without checking in the changes.

-o  Use the original time of the edited file for the delta time when applying the delta. In NSE mode this is the default behavior.

    This option is a SCHILY extension that does not exist in historic sccs implementations.

-r sid | -rsid
    When two or more versions are checked out, specify the version to check in. This SID value can be either the SID specified on the get command line, or the SID of the new version to be checked in as reported by get. A diagnostic results if the specified SID is ambiguous, or if one is required but not supplied.

-y[comment]
    Supply a comment for the delta table (version log). A null comment is accepted, and produces an empty commentary in the log. If -y is not specified and the standard input is a terminal, delta prompts with `comments? '. An unescaped NEWLINE terminates the comment.

-z  Enable CMF extensions for MR number handling.

    This option is an undocumented SUN extension that does not exist in historic sccs implementations.

-Cdir
    Specify the base directory for the g-file relative to the current working directory. By default, the g-file is searched for in the current directory (independent from the location of the s.file.

-V  Prints the delta version number string and exists.

ENVIRONMENT VARIABLES

See environ(5) for descriptions of the following environment variables that affect the execution of delta(1): LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH.

SCCS_NO_HELP
    If set, delta(1) will not automatically call help(1) with the SCCS error code in order to print a more helpful error message. Scripts that depend on the exact error messages of SCCS commands should set the environment variable SCCS_NO_HELP and set LC_ALL=C.

STDOUT

If the -s option was not specified, delta prints statistics about file activities in the following format:

    new-sid
    nn inserted
    nn deleted
    nn unchanged

EXIT STATUS

The following exit values are returned:

0   Successful completion.

1   An error occurred and the -d option had not been specified.

2   An error occurred, the -d option had been specified, and the s.filename argument was not specified.

FILES

d.file
    temporary file created by the delta(1) program with the content of the previous version, used to compute differences to the current version

e.file
    temporary file to hold an uuencoded version of the g-file in case of an encoded history file

p.file
    permission (lock) file for checked-out versions. See sccs-get(1) for a description of the layout of the p.file.

q.file
    temporary copy of the p.file; renamed to the p.file after completion

s.file
    SCCS history file, see sccsfile(4).

x.file
    temporary copy of the s.file; renamed to the s.file after completion

z.file
    temporary lock file contains the binary process id in host byte order followed by the host name

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

  /usr/ccs/bin/delta

SEE ALSO

sccs(1), sccs-admin(1), sccs-cdc(1), sccs-comb(1), sccs-get(1), sccs-help(1), sccs-prs(1), sccs-prt(1), sccs-rmdel(1), sccs-sact(1), sccs-sccsdiff(1), sccs-unget(1), sccs-val(1), sccscvt(1), sccslog(1), bdiff(1), diff(1), what(1), changeset(4), sccsfile(4), attributes(5), environ(5), standards(5).

DIAGNOSTICS

Use the SCCS help command for explanations (see sccs-help(1)).

WARNINGS

Lines beginning with an ASCII SOH character (binary 001) cannot be placed in the SCCS file if the SCCS v4 history file format is used, unless the SOH is escaped. This character has special meaning to SCCS (see sccsfile(4)) and produces an error in SCCS v4 mode. SCCS v6 automatically esacapes such characters and thus allows to use ASCII SOH at any place in a file.

BUGS
The program delta(1) is currently buggy while adding the SID specific checksum when a SCCS v6 history file is used with the command `delta -g sid-list s.file '. This is because the SID specific checksum is computed from the current file content, but `delta -g...' tells get(1) to extract something different than what we checked in. As get(1) computes the checksum with the excluded SIDs, while delta(1) computed the checksum with included SIDs, it will encounter a checksum misscompare.

AUTHORS
The SCCS suite was origininally written by Marc J. Rochkind at Bell Labs in 1972. Release 4.0 of SCCS, introducing new versions of the programs admin(1), get(1), prt(1), and delta(1) was published on February 18, 1977; it introduced the new text based SCCS v4 history file format (previous SCCS releases used a binary history file format). The SCCS suite was later maintained by various people at AT&T and Sun Microsystems. Since 2006, the SCCS suite is maintained by Joerg Schilling.