Current Supported Releases: Sablime® v6.0 & v5.2
NAME
ncomb - rearrange the versions in an SBCS s-file
SYNOPSIS
ncomb [-nostvNY] [-f flag[val]] [-c sid-list] [-p sid] s-
file1 s-file2
DESCRIPTION
ncomb combines deltas by preserving only the specified ver-
sions and rearranging the SID dependency tree.
ncomb can also be used to regenerate the whole file (-p-),
preserving everything, but enforcing a different compression
or differencing scheme, for example.
A command line begins with option arguments and ends with
s-file arguments. The first s-file argument must specify an
existing s-file and the second one the s-file to be created.
ncomb generates a sh(1) script, runs it, then removes it,
unless instructed to do otherwise. It can also produce on
standard output a partial description, in nprs format, of
the s-file that will be generated. The description is par-
tial because the final size information is not available
until to command is run and the new file created. This out-
put can be piped directly into sidtree(1) to visualize the
new version SID dependency.
If no options are specified, the ncomb script is generated,
run and removed. It preserves only the last version of each
branch (branch leaves), the last trunk version and the trunk
versions that have branches. This is enough to generate a
tree that preserves the shape of the original. All other
versions, including the headers of versions previously
removed with nrmdel, are completely removed. The configura-
tion reached is stable against further applications of ncomb
without options.
OPTIONS
-n Don't run the script. This also implies keeping the
script under the name ncomb.sh. If a previous comb.sh
exists, the command will not run.
-o One branch per release. The script preserves the same
versions as the no option case (last branch versions,
last trunk and branch node versions), but they are re-
arranged differently. The -o option consolidates all
the branch leaves of a release into one branch and
merges as much of this branch with the trunk as is con-
sistent with preserving the release value and the time
sequence order. For the last trunk release, all branch
versions can be, and are, merged with the trunk (so the
SBCS Release 1.2 Last change: 1 April 1994 1
last release will always be branch-less). If used
repeatedly, ncomb -o will continue to remove versions
until a minimal stable configuration remains, with pos-
sibly only one version.
-s Run silently. Messages and warnings that are normally
sent to standard output (standard error if -t is used)
are suppressed. Real error messages are not affected.
The -s option does not affect the -t option.
-t Test mode. Produce on standard output an nprs(1) like
description of the new version, but don't generate or
run the script. Messages normally sent to standard
output are redirected to standard error (they can be
suppressed with -s. When -t is given, the second s-
file argument is not used and is optional. The -t
option is useful in combination with sidtree,
ncomb -t [options] s.file1 | sidtree -f679
to give an early look at exactly what the ncomb options
are going to do. When used with -t, ncomb automati-
cally names new versions after their old SID so the new
SID and old SID can be displayed side by side.
-v Verbose. The opposite of -s, produce even more status
messages.
-N No execution. Simply print the name of the s-files that
would be processed by the generated script. Do not
generate the script.
-Y Answer y to any y/n prompt. See NOTES below.
-c sid-list
Specify the list of versions to preserve. All other
versions are removed. sid-list can be a mixed list of
SIDs, SID ranges or version names. A SID range is
indicated by joining two SIDs with a -. The list can
be comma separated or blank separated and quoted.
-f flag[val]
The flag can be either w or y, specifying the compres-
sion or differencing scheme to use in the new s-file
(see nadmin(1) -f).
-p sid
Specify the oldest version to preserve. sid can be a
complete SID (R.L or R.L.B), a version name or the sin-
gle character -. A single - means preserve all ver-
sions.
COMMENTS
ncomb preserves the versions specified by the command line
SBCS Release 1.2 Last change: 1 April 1994 2
options or their defaults. The algorithm used ensures that
the chronological sequence order of the preserved versions
is respected. ncomb will do what is possible to preserve
the release number of a version. This will fail if a ver-
sion has a release number lower than that of the earliest
preserved trunk delta (implying it is a branch version). In
these cases the release number is increased to that of the
earliest trunk version.
A side effect of any ncomb usage that does not preserve all
versions is that original SIDs that are relabeled may be
difficult to identify in the new s-file. This is not a
problem if all versions are preserved (-p-) or if version
names are used because ncomb preserves the original version
names. Therefore applications that name their valuable ver-
sions can use ncomb effectively to control s-file growth.
If the -p- option was not used, ncomb adds some text to the
file descriptive text, stating
*** This File was COMBined *** date-time user
Followed by the original delta header information generated
by nprs. The combined deltas (new versions) time stamps and
author will be time and author of the ncomb operation.
If -p- was used, the file descriptive is not changed all
original time stamps and authors are preserved.
SBCS Release 1.2 Last change: 1 April 1994 3
EXAMPLE
Figure 1 is a sidtree(1) picture of an s-file (s.sample_sb)
with 33 deltas and six branches.
1.1 ------------------------------------+-------+ sable
| | 1.1.1.1 sable
| 1.1.2.1 | sable
| | 1.1.1.2 sable
| 1.1.2.2 | anil
| | 1.1.1.3 sable
| 1.1.2.3 | anil
| 1.1.2.4 | anil
| | 1.1.1.4 sable
| 1.1.2.5 | anil
| | 1.1.1.5 sable
| 1.1.2.6 | anil
| | 1.1.1.6 sable
| 1.1.2.7 | anil
| | 1.1.1.7 sable
2.1 --------------------+-------+ | sable
| | 2.1.1.1 | sable
| 2.1.2.1 | | sable
| | 2.1.1.2 | sable
| | | 1.1.2.8 ljh
| 2.1.2.2 | | ljh
| | | 1.1.2.9 ljh
| 2.1.2.3 | | ljh
| 2.1.2.4 | | prasad
| | 1.1.2.10 prasad
3.1 | gbrill
4.1 | gbrill
5.1 ----+-------+ | gbrill
| 5.1.1.1 | gbrill
5.1.2.1 | | gbrill
5.1.2.2 | | gbrill
5.1.1.2 | wina
2.1.1.3 wina
Figure 1: sidtree -f5 s.sample_sb
SBCS Release 1.2 Last change: 1 April 1994 4
Figures 2 and 3 show the effect of ncomb with default option
and ncomb using the -o option, respectively. Notice that
the tree shape is preserved in Figure 2, but not in Figure
3. To ease mapping old to new SIDs, sidtree -t assigns tem-
porary names to each version. The names appear between
brackets and reflect the original SIDs.
1.1 -------------------------------+------+ sable [1.1]
| | 1.1.1.1 sable [1.1.1.7]
2.1 -----------------+------+ | sable [2.1]
| | 2.1.1.1 | prasad [2.1.2.4]
| | 1.1.2.1 prasad [1.1.2.10]
5.1 ---+------+ | gbrill [5.1]
| 5.1.1.1 | gbrill [5.1.2.2]
5.1.2.1 | wina [5.1.1.2]
2.1.2.1 wina [2.1.1.3]
Figure 2: ncomb -t s.sample_sb | sidtree -f58
1.1 sable [1.1]
1.2 ----------+ sable [1.1.1.7]
2.1 | sable [2.1]
2.2 ---+ | prasad [2.1.2.4]
| | 1.2.1.1 prasad [1.1.2.10]
5.1 | gbrill [5.1]
5.2 | gbrill [5.1.2.2]
5.3 | wina [5.1.1.2]
2.2.1.1 wina [2.1.1.3]
Figure 3: ncomb -t -o s.sample_sb | sidtree -f58
FILES
The script generates temporary files in the directory speci-
fied by the env variables TMPDIR, TEMP or TMP, or the
sbcsenv variable tmpdir [= "/tmp"]. They are removed before
the script terminates.
The comb.sh script is saved in the current directory when -n
option is used.
NOTES
Multiple Files
ncomb is used on one s-file at a time. It can be used
as part of a script to run on multiple s-files. For
example, to convert all s-files from the present direc-
tory (or the matching source tree directory), one could
SBCS Release 1.2 Last change: 1 April 1994 5
use sfile(1) to write
for f in `sfile .`
do
if ncomb $f $f.$$
then mv $f.$$ $f
fi
done
Multi-User
The script generated by ncomb calls on nadmin, nget and
ndelta; it will only be usable by the s-file adminis-
trator.
Y/N Prompt
An unexpected prompt to restore the s-file is always
possible. Specifying -Y provides a default y answer.
Because the user must already have permission to modify
the s-file, any restore is expected to succeed.
Caveat
ncomb does not guarantee that the combined s-file will
be any smaller than the original. In fact, because in
part of the additions to the descriptive text, the new
file size can sometimes exceed that of the original.
COMPARISON WITH SCCS
Only in SBCS:
The test option -t and the option -p- to regenerate the
whole file.
Differences:
The SBCS 1.2 version of this command is substantially
different from the previous SBCS and SCCS commands.
The current version is used on one s-file at a time.
Previous versions of ncomb would try to maintain prede-
cessor relationships as close as possible to those of
the original s-file and this could cause surprising
predecessor relationships in the new file. This ver-
sion of ncomb forces all predecessors to be immediate
neighbors on the SID tree: the previous version for
forward deltas, the following version for reverse del-
tas.
DIAGNOSTICS
Warning and error messages have error codes that can be used
with nhelp for a more detailed explanation.
SEE ALSO
nadmin(1), ncdc(1), ndelta(1), nedges(1), nget(1), nhelp(1),
nprs(1), nrmdel(1), sbcsenv(1), sidtree(1).
SBCS Release 1.2 Last change: 1 April 1994 6
Return to SBCS Commands manpage index
Copyright © 2003
Lucent Technologies