sccs-cvt(1)

NAME
sccs-cvt, sccscvt - convert SCCS history files between v4/v6

SYNOPSIS
sccscvt [ options ] s.file1 .. s.filen

DESCRIPTION
Sccscvt converts SCCS v4 history files (as introduced in February 1977) into SCCS v6 history files (as introduced in August 2011) and vice versa.

The first line, containing the SCCS magic number and the checksum is converted to the format that is appropriate. The time format in the delta table is converted by either removing the SCCS v6 extensions or by adding time zone information by assuming that all time stamps are from the local time zone. When converting from SCCS v6 to SCCS v4, the enhanced time stamp data is retained as the first delta comment line in a delta block.

SID specific SCCS v6 enhancements are converted into special delta comment to prevent information loss when converting to SCCS v4.

The SCCS v6 enhancements that are between the SCCS v4 flags indicated by ^Af and the SCCS comment block that is bracketed between ^At and ^AT are untouched as these enhancements are not flagged by historic SCCS versions and retained by historic SCCS versions when a history file is modified.

When in old mode, the option -NSCCS is not in effect and a file argument refers to a directory, the directory is scanned for file names that start with ``s.'' and examines all these files.

When in new mode, the option -NSCCS is in effect, and a file argument refers to a directory, sccs-cvt opens the corresponding directory with SCCS history files and scans it for file names that start with ``s.'' and examines all these files.

It is recommended not to call sccs-cvt directly but via ``sccs cvt'' as this automatically adds the -NSCCS option in new mode. This is needed in order to get the path name as global meta data into the converted SCCSv6 history file.

  Converting an old mode project into a new mode project

It is recommended to first initialize the project to use an in-tree repository by calling:

sccs init -i .

in order to prepare the new mode.

By then calling:

SCCS_NMODE= sccs cvt -k -ooo .

all SCCS history files from the current directory are converted. The environment SCCS_NMODE= is currently needed in order to enforce new mode in sccs(1). Repeat the last command with other directories from the project.

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

OPTIONS

-d  When converting from SCCS v6 to SCCS v4, discard the extended SCCS v6 meta data instead of converting it into special degenerated delta comments.

-help
    Prints a short summary of the sccscvt options and exists.

-k

-keep
    Keep the original history file as o.file. When this option is missing, the original file is replaced by the converted file.

-o  Keep the old time stamp for the converted file.

-oo Set the time stamp for the converted file to the time stamp of the original file + 1 nanosecond. This is sufficient for modern filesystems like ZFS to get a distinguishable newer time that is still similar to the old time stamp.

-ooo
    Set the time stamp for the converted file to the time stamp of the original file + 1 microsecond. This is sufficient for older filesystems like UFS to get a distinguishable newer time that is still similar to the old time stamp.

-oooo
    Set the time stamp for the converted file to the time stamp of the original file + 1 second. This is sufficient for historic filesystems to get a distinguishable newer time that is still similar to the old time stamp.

-V4 Convert a SCCS v6 history file into a SCCS v4 history file.

-V6 Convert a SCCS v4 history file into a SCCS v6 history file.

-Nbulk-spec
    Processes a bulk of SCCS history files. This option allows one to do an efficient mass processing of SCCS history files.

    The bulk-spec parameter is composed from an optional list of flag parameters followed by an optional path specifier.

    The following flag types are supported:

    none

    The following path specifier types are supported:

    -N  The file name parameters to the sccscvt command are not s.filename files but the names of the g-files. The s.filename names are automatically derived from the g-file names by prepending s. to the last path name component. Both, s.filename and the g-file are in the same directory.

    -Ns.
        The file name parameters to the sccscvt command are s.filename files. The the g-files names are automatically derived by removing s. from the beginning of last path name component of the s.filename. Both, s.filename and the g-file are in the same directory.

    -Ndir
        The file name parameters to the sccscvt command are not s.filename files but the names of the g-files. The s.filename names are put into directory dir, the names are automatically derived from the g-file names by prepending dir/s. to the last path name component.

    -Ndir/s.
        The file name parameters to the sccscvt command are s.filename files in directory dir. The the g-files names are automatically derived by removing dir/s. from the beginning of last path name component of the s.filename.

    A typical value for dir is SCCS.

    In order to overcome the limited number of exec(2) arguments, it is recommended to use `-' as the file name parameter for sccscvt(1) and to send a list of path names to

-Xextended-options
    Specify extended options. The argument extended-options may be a comma separated list of extended option names.

    The following extended options are supported, they may be abbreviated as long ad the abbreviation is still unique. Options with parameter may not be abbreviated.

    0   When reading filenames from stdin, triggered by a file name argument `-', the filename separator is a null byte instead of a newline. This allows one to use long lists with arbitrary filenames.

    help
        Print a short online help for available options.

    The -X option is a SCHILY extension that does not exist in historic sccs implementations.

-V
-version
--version
    Prints the sccscvt version number string and exists.

ENVIRONMENT VARIABLES

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

SCCS_NO_HELP
    If set, sccscvt(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.

TZ  Used for the timezone when converting between SCCS v4 and SCCS v6.

EXIT STATUS

The following exit values are returned:

0   Successful completion.

1   An error occurred.

-1  A wrong option or parameter was specified.

FILES

s.file
    history file

o.file
    saved original version of the history file

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(7) for descriptions of the following attributes:

SEE ALSO

sccs(1), sccs-add(1), sccs-admin(1), sccs-branch(1), sccs-cdc(1), sccs-check(1), sccs-clean(1), sccs-comb(1), sccs-commit(1), sccs-create(1), sccs-deledit(1), sccs-delget(1), sccs-delta(1), sccs-diffs(1), sccs-edit(1), sccs-editor(1), sccs-enter(1), sccs-fix(1), sccs-get(1), sccs-help(1), sccs-histfile(1), sccs-info(1), sccs-init(1), sccs-istext(1), sccs-ldiffs(1), sccs-log(1), sccs-print(1), sccs-prs(1), sccs-prt(1), sccs-rcs2sccs(1), sccs-remove(1), sccs-rename(1), sccs-rmdel(1), sccs-root(1), sccs-sact(1), sccs-sccsdiff(1), sccs-status(1), sccs-tell(1), sccs-unedit(1), sccs-unget(1), sccs-val(1), bdiff(1), diff(1), what(1), sccschangeset(5), sccsfile(5), attributes(7), environ(7), standards(7).

NOTES
If a SCCS history file is converted from SCCS v4 to SCCS v6 and there is no retained SCCS v6 timestamp information in the delta comment, it may be a good idea to manually correct time zone information.

BUGS

None currently known.

Mail bugs and suggestions to schilytools@mlists.in-berlin.de or open a ticket at https://codeberg.org/schilytools/schilytools/issues.

The mailing list archive may be found at:

https://mlists.in-berlin.de/mailman/listinfo/schilytools-mlists.in-berlin.de.

AUTHOR
sccscvt (1) was originally written by Joerg Schilling in 2011 and is now maintained by the schilytools project authors.

SOURCE DOWNLOAD
The source code for sccs is included in the schilytools project and may be retrieved from the schilytools project at Codeberg at

https://codeberg.org/schilytools/schilytools.

The download directory is

https://codeberg.org/schilytools/schilytools/releases.