3.6 Included Excluded and Ignored deltas

This section describes how included, excluded and ignored deltas are
handled by cssc. Little documentation is available on how
sccs handles this, and so while this section describes how
cssc works, it may in fact not be an accurate description of how
csscshould work.

If you spot a defect in this section (or of course any other section)
of the cssc manual, please report this as a bug
(see Reporting Bugs).

3.6.1 The Usual Case

The usual case is where none of the deltas in the sccs file has
any included, excluded or ignored deltas. All the lines in the body
of the sccs file are there because they were first inserted by a
particular delta. All of these lines are copied through to the gotten
file, unless they are deleted by a later delta. For example if an
sccs file contains deltas 1.1 and 1.2, then all the lines from
delta 1.2 will be included, and all the lines from delta 1.1 which are
not deteled in version 1.2 are also included.

3.6.2 Included Deltas

Normally the contents of the gotten delta is included in the output,
along with all the non-deleted lines of its ancestors. However, a
delta can also specify that some other delta should be included. This
really only makes a difference when there is a branch in the file.

For example, if delta 1.5 includes 1.3.1.5, then the gotten file will
include the contents of versions 1.1 through to 1.5, plus the contents
of the 1.3.1 branch up to and including 1.3.1.5. Lines which were
(say) added in 1.2 but delted in 1.3.1.1 will not appear in the
output, since we have included a delta that deletes them.

3.6.3 Excluded Deltas

Excluding a delta is, unsurprisingly, more or less the opposite of
including one. The exclusion of a delta supercedes the inclusion of a
delta. One might specify, for example, that delta 1.6 should exclude
delta 1.5 (for example to back out of any changes it made). Exclusion
can also be used to reverse the effect of an inclusion. Suppose that
delta 1.6 in the example from the section above excludes 1.3.1.5, then
1.6 will include the contents of deltas 1.1 through to 1.4, plus the
contents of delta 1.5 itself, but it will not include the data from
the 1.3.1 branch that would have been used if we had gotten delta 1.5.

3.6.4 Ignored Deltas

Ignored deltas are “silent”; that is, lines which are added by a
delta which is (explicitly or implcitly) included will not appear in
the gotten file. Conversely, lines deleted by an ignored delta will
still appear in the gotten file.