sccs-delta(1)
okay bestie, welcome to sccs-delta(1) β straight out of the User Commands section of the manual, and yes it's the one and only delta π
πΈ NAME πΈ
sccs-delta, delta β make a delta to an SCCS file. that's it, that's the whole name π
β¨ SYNOPSIS β¨
/usr/ccs/bin/delta [-dfhknopsz] [-g sid-list | -gsid-list]
[-m mr-list | -mmr-list] [-q[nsedelim]] [-r sid | -rsid]
[-y [comment]] [-D diff-file]
[-Xextended-options] [-Nbulk-spec] s.filename...
π¦ DESCRIPTION π¦
okay so picture this: you've got a file under SCCS control, you checked it out, you edited it, and now you want all those line-by-line differences actually recorded. that's what delta does β it checks in a record of the line-by-line differences made to a checked-out version of a file under SCCS control. main character behavior honestly π
where do the changes come from? they're taken from the writable working copy that was retrieved using the SCCS get command (see sccs-get(1)). and here's the lil detail everyone forgets: this working copy does not have the s. prefix, and it's also referred to as a g-file. iykyk π
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). no cap, it just keeps going π«Ά
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). literally a little conveyor belt of file names β¨
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). so if it starts talking to you, that's normal, it's just being chatty π¬
π OPTIONS π
the following options are supported:
-bβ use commandbdiff(1)instead offsdiff(1). this version ofdelta(1)by default usesfsdiff(1)that is faster thanbdiff(1)and does not slow down as much with larger file size. speed demon energy β‘-dβ use commanddiff(1)instead ofbdiff(1). returns exit status2instead of1if the s.filename argument is not specified. noted, bestie, that's a whole different number π-fβ in NSE mode, this option allows one to enforce a delta even when nop.fileexists. the new SID is assigned using the same rules as withget -e.
this option is usually used together with the -q and -n options.
this option is an undocumented SUN extension that does not exist in historic sccs implementations. so don't go looking for it in the old archives π
-hβ in NSE mode, this option allows one to usediffh(1)for large files.
this option is currently defunct. it's giving "retired but still in the group chat" π
this option is an undocumented SUN extension that does not exist in historic sccs implementations.
-kβ suppresses expansion of ID keywords whendelta(1)is doing an implicitget(1)operation because-N+...was specified.
this option is a SCHILY extension that does not exist in historic sccs implementations.
-nβ retain the editedg-file, which is normally removed at the completion of processing. keep it, bestie, don't let it go π₯Ί-pβ display line-by-line differences (indiff(1)format) on the standard output. look at all those little lines go π-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. (yes, ignored. we don't ask questions π)
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). silence, but not that kind of silence π-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 unlessget -isid-listwith 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. carrot-and-stick but for deltas π₯-m mr-list|-mmr-listβ if the SCCS file has thevflag set (seesccs-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-mis not used and the standard input is a terminal,deltaprompts withMRs?for the list (before issuing thecomments?prompt). if thevflag in thes.filehas 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,deltaterminates without checking in the changes. gatekept by a whole validation program, iconic π₯-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. nostalgia timestamp π°οΈ
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 thegetcommand line, or the SID of the new version to be checked in as reported byget. a diagnostic results if the specified SID is ambiguous, or if one is required but not supplied. choose wisely bestie, the ambiguity will find you π-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-yis not specified and the standard input is a terminal,deltaprompts withcomments?. an unescaped NEWLINE terminates the comment. so don't hit enter mid-thought, unless you meant to βοΈ-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 theg-filerelative to the current working directory. by default, theg-fileis searched for in the current directory (independent from the location of thes.file. π«Ά
this option is a SCHILY extension that does not exist in historic sccs implementations.
-Ddiff-fileβ provide a file with prepared diff output todelta(1). if this option is present,delta(1)will not get the previous file content and calldiff(1)on the previous file content and the current file content, but read the diff-file instead. pre-prepped diff, we love a meal-prep moment π
this option is a SCHILY extension that does not exist in historic sccs implementations.
-Nbulk-specβ processes a bulk of SCCS history files. this option allows one to 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:
+β if bulk-spec is preceded by a+,delta(1)removes the originalg-filesand replaces them by file content that is retrieved by aget(1)operation on the relateds.file. this option is ignored if-nhas been specified. swapsies π- space β this is a placeholder dummy flag that allows one to use a prepared string for the
-Noption and to replace the space character by one of the supported flags on demand. the humble space bar, doing important work β£
the following path specifier types are supported:
-Nβ the file name parameters to thedeltacommand are nots.filenamefiles but the names of theg-files. thes.filenamenames are automatically derived from theg-filenames by prependings.to the last path name component. both,s.filenameand theg-fileare in the same directory.-Ns.β the file name parameters to thedeltacommand ares.filenamefiles. theg-filesnames are automatically derived by removings.from the beginning of last path name component of thes.filename. both,s.filenameand theg-fileare in the same directory.-Ndirβ the file name parameters to thedeltacommand are nots.filenamefiles but the names of theg-files. thes.filenamenames are put into directory dir, the names are automatically derived from theg-filenames by prependingdir/s.to the last path name component.-Ndir/s.β the file name parameters to thedeltacommand ares.filenamefiles in directory dir. theg-filesnames 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 for delta(1) and to send a list of path names to stdin. no cap, that's the move π―
this option is a SCHILY extension that does not exist in historic sccs implementations.
-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 as the abbreviation is still unique:
date=datetimeβ allows one to overwrite the usual methods to determine the time stamp used for a new delta. this is needed to e.g. convert a historic SCCS history into a new project oriented bundle history. the format of the datetime argument is the same as for cutoff times but nanoseconds and a time zone offset are permitted in addition. yes, nanoseconds, we're fancy like that β±οΈ
gpath=g-path β okay so lowkey sometimes the algorithm that derives the g-file path from the s-file just does not apply to your specific case, and that's not a you problem. This hands over a totally different path to the g-file instead of letting it derive one, and bestie you **need it to manage the changeset file. πnobulkβ disables the-N(bulkmode) filename translations, periodt. Why? Becausesccs(1)in NewMode will just β¨automaticallyβ¨ add a-Nfor you, and with that in play it would otherwise be straight-up impossible to deal with the changeset file.sccs/SCCS/s.changeset. So yeah. Necessary.- *
mail=address* β sets address as the e-mail address in the delta table for the SID you just created π prependβ sticks the current content of the g-file onto the front of the previous content of that file. The whole point: with this option you do not need to unpack the old reference version and diff the current version against it. That's a major performance win, no cap, and it's the one used for updating thesccschangeset(5)file when in project mode. π₯user=name β uses a different user name for the programmer field in the delta table. By default, the logname is used for that field. Small warning though: using a different name may later **deny the permission to modify a delta by programs likecdc(1). π0β when reading filenames from stdin (triggered by a file name argument of-), the filename separator becomes a null byte instead of a newline. Which slays, because it lets you use long lists of arbitrary filenames.helpβ prints a short online help for available options. We love a self-aware icon.
The -X option is a SCHILY extension that does not exist in historic sccs implementations. Just so we're clear π«Ά
-V,-version,--versionβ prints the delta version number string, and exists. That's the whole bit. β
This option is a SCHILY extension that does not exist in historic sccs implementations. Same energy.
β¨ ENVIRONMENT VARIABLES β¨
See environ(7) 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 this is set,delta(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. You've been warned, and it's giving very much "I know what I'm doing" energy π
πΈ 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
Look at her go. Numbers!! π
π EXIT STATUS π
The following exit values are returned:
0β successful completion. We love a happy ending π1β an error occurred and the-doption had not been specified.2β an error occurred, the-doption had been specified, and the s.filename argument was not specified. Yes, the vibes are different for each one. Memorise them, iykyk.
π¦ FILES π¦
d.fileβ temporary file created by thedelta(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. Seesccs-get(1)for a description of the layout of thep.file.q.fileβ temporary copy of thep.file; renamed to thep.fileafter completion.s.fileβ SCCS history file, seesccsfile(5).x.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.dump.coreβ if the filedump.coreexists in the current directory and a fatal signal is received, a coredump is initiated viaabort(3). That's the whole feature. Just a little guy in your directory deciding whether you get a coredump today π
π ATTRIBUTES π
See attributes(7) for descriptions of the following attributes:
/usr/ccs/bin/delta
- Availability β
SUNWsprot
That's it, that's the whole table bestie π
π 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-cvt(1), sccs-deledit(1), sccs-delget(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), fsdiff(1), what(1), sccschangeset(5), sccsfile(5), attributes(7), environ(7), standards(7).
A whole friend group, honestly ππ
π§ DIAGNOSTICS π§
Use the SCCS help command for explanations (see sccs-help(1)). It's literally the designated explainer.
β οΈ 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(5)) and produces an error in SCCS v4 mode. Good news though: SCCS v6 automatically escapes such characters and thus allows you to use ASCII SOH at any place in a file. Upgrade your vibes, upgrade your format πΈ
Real talk: ifdelta(1)is used in force mode (usingdelta -q -f -n s.file), using the option-gsid-listin addition will result in unexpected behavior. Why? Because the file content used fordelta(1)differs from what is extracted usingget(1). And since in force delta mode,get(1)is usually not used, the next delta will revert the effect of thedelta -g...call. So it's giving chaos. Don't do it ππ
π BUGS π
None currently known. Iconic behaviour, 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:
---
# π AUTHORS π
The SCCS suite was originally 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 has been maintained by Joerg Schilling and is now maintained by the schilytools project authors.
Literal legends. All of them. π«Άπ
---
# β SOURCE DOWNLOAD β
The source code for SCCS is included in the schilytools project and may be retrieved from the schilytools project at Codeberg at
The download directory is
---
And that's the whole page, bestie! This one shipped on `SunOS 5.11` and the date on it is `2022/10/06`, filed under `sccs-delta(1)` β go forth and delta responsibly π
ππ¦
π¦ 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 2007-2020 J. Schilling
- Copyright (c) 1999, Sun Microsystems, Inc. All Rights Reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms