sccs-cvt(1)
π
sccs-cvt(1) β the sccs-cvt / sccscvt vibe check
okay bestie, so this page is from SchilyΒ΄s USER COMMANDS, and it's literally all about sccs-cvt and its twin alias sccscvt. Buckle up π
β¨ NAME β¨
sccs-cvt, sccscvt β convert SCCS history files between v4/v6
πΈ SYNOPSIS πΈ
sccscvt [ options ] s.file1 .. s.filen
π¦ DESCRIPTION π¦
So Sccscvt takes SCCS v4 history files (the ones introduced in February 1977, grandma era fr) and turns them into SCCS v6 history files (introduced in August 2011, glow-up era), and it also does the whole thing in reverse. Both ways. Iconic.
The first line β the one holding the SCCS magic number and the checksum β gets converted to whatever format is appropriate. And the time format in the delta table? It gets converted too, by either stripping out the SCCS v6 extensions or by adding time zone info while assuming that every single timestamp is from the local time zone. No cap. And when you go from SCCS v6 to SCCS v4, that enhanced timestamp data is retained as the first delta comment line in a delta block, so nothing gets lost π
SID-specific SCCS v6 enhancements get converted into a special delta comment, specifically so there's no information loss when converting to SCCS v4.
The SCCS v6 enhancements that live between the SCCS v4 flags indicated by ^Af and the SCCS comment block bracketed between ^At and ^AT are untouched β because those enhancements aren't flagged by historic SCCS versions, and they're retained by historic SCCS versions when a history file gets modified. Leave them alone, they're fine β¨
When in old mode, the option -NSCCS is not in effect, and if a file argument refers to a directory, that directory is scanned for file names starting with ``s.'' and it examines all of those files.
When in new mode, the option -NSCCS is in effect, and if a file argument refers to a directory, sccs-cvt opens the corresponding directory with SCCS history files and scans it for file names starting with ``s.'' and examines all of those files.
π«Ά Real talk: it is recommended not to callsccs-cvtdirectly, but via ``sccs cvt'' β because that automatically adds the-NSCCSoption in new mode. You need that in order to get the path name in as global meta data inside the converted SCCSv6 history file. That's the whole point, iykyk.
π§ Converting an old mode project into a new mode project
First things first: it is recommended to initialize the project to use an in-tree repository by calling:
sccs init -i .
...in order to prepare the new mode. Get it ready, bestie.
Then, by 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). And then just repeat that last command with other directories from the project. Easy π
This program is a SCHILY extension that does not exist in historic sccs implementations. Special girl behavior only π
π 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. Bye bye data π-helpβ prints a short summary of thesccscvtoptions and exists.-k-keepβ keep the original history file aso.file. When this option is missing, the original file is replaced by the converted file. So like, if you don't say it, your original is gone.-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. That's sufficient for modern filesystems like ZFS to get a distinguishable newer time that's still similar to the old time stamp. Nano-era slay β-oooβ set the time stamp for the converted file to the time stamp of the original file + 1 microsecond. Sufficient for older filesystems like UFS to get a distinguishable newer time that's 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. Sufficient for historic filesystems to get a distinguishable newer time that's still similar to the old time stamp. Old school π-V4β convert a SCCS v6 history file into a SCCS v4 history file. Going back in time fr.-V6β convert a SCCS v4 history file into a SCCS v6 history file. Moving on up β¨-Nbulk-specβ processes a bulk of SCCS history files. This option lets you do an efficient mass processing of SCCS history files. Group project energy π- 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 thesccscvtcommand are nots.filenamefiles but the names of the g-files. Thes.filenamenames are automatically derived from the g-file names by prependings.to the last path name component. Both,s.filenameand the g-file are in the same directory.-Ns.β the file name parameters to thesccscvtcommand ares.filenamefiles. The the g-files names are automatically derived by removings.from the beginning of last path name component of thes.filename. Both,s.filenameand the g-file are in the same directory.-Ndirβ the file name parameters to thesccscvtcommand are nots.filenamefiles but the names of the g-files. Thes.filenamenames are put into directory dir, and the names are automatically derived from the g-file names by prependingdir/s.to the last path name component.-Ndir/s.β the file name parameters to thesccscvtcommand ares.filenamefiles in directory dir. The the g-files names are automatically derived by removingdir/s.from the beginning of last path name component of thes.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 forsccscvt(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
-Xoption is a SCHILY extension that does not exist in historicsccsimplementations.
- 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.
-V-version--versionβ prints thesccscvtversion 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 callhelp(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 variableSCCS_NO_HELPand setLC_ALL=C. Control freak scripts, we respect you πTZβ used for the timezone when converting between SCCS v4 and SCCS v6.
π₯ EXIT STATUS π₯
The following exit values are returned:
0β successful completion. We love a win π1β an error occurred. π-1β a wrong option or parameter was specified. Read the options again bestie π
π§ FILES π§
s.fileβ history fileo.fileβ saved original version of the history filex.fileβ temporary copy of thes.file; renamed to thes.fileafter 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:
- Attribute Type: Availability β Attribute Value:
SCHILYdeveloper-build-sccs - Attribute Type: Interface Stability β Attribute Value:
Evolving
π 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. Just saying π«Ά
π BUGS π
None currently known. (Iconic behavior, honestly.)
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.
and that's the whole page bestie π written by Joerg Schilling, dated 2022/10/06 β go convert some history files, you've got this β¨π
π¦ where this page comes from
- opensuse-leap 16.0: sccs 2022.10.16-160000.2.2 Β· CDDL-1.0
- opensuse-leap 16.0: sccs 2022.10.16-160000.2.2 Β· CDDL-1.0
- opensuse-leap 16.0: sccs 2022.10.16-160000.2.2 Β· CDDL-1.0
- opensuse-leap 16.0: sccs 2022.10.16-160000.2.2 Β· CDDL-1.0
- Copyright 2011-2020 J. Schilling
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms