sccs-log(1)

πŸ“¦ version 2022.10.16, in opensuse-leap 16.0

πŸ’… sccs-log(1) β€” SchilyΒ΄s USER COMMANDS, bestie edition ✨

okay so real talk: this is the sccs-log page from SchilyΒ΄s USER COMMANDS, and it's lowkey one of the most useful little gremlins in the whole SCCS family. sit down, grab a strawberry drink πŸ“, and let's get into it.


✨ NAME ✨

sccs-log, sccslog β€” bestie, this thing creates a changelog from SCCS history files. that's it. that's the job. and it ate. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

sccslog [options] s.file1 .. s.filen

🌸 DESCRIPTION 🌸

So Sccslog creates a Changelog file from SCCS history files. iconic behavior honestly.

And here's a lil detail you're gonna love: if a file argument refers to a directory, the directory is scanned for file names that start with ``s.'' β€” and then it examines all of those files. so you can just point it at a dir and let it cook. 🍳

heads up bestie: this program is a SCHILY extension that does not exist in historic sccs implementations. she's new. she's built different. no cap.

πŸŽ€ OPTIONS πŸŽ€

  • -a β€” ok so sccslog normally collects all deltas with the same delta comment and prints them as one log table entry, but only when the related delta time for the files differs no more than one day. With -a, sccslog collects only those deltas that have been created within 60 seconds. tighter window, cleaner grouping. ⏰
  • -aa β€” with -aa, sccslog collects only deltas that have been created in the same second. like, same-second same-energy only. literally. πŸ’€
  • -Cdir β€” use dir as base directory for printed file names in the output. This option is used by sccs -R to tell sccslog to print filenames that are suitable for complete project changelog files. project-wide slay. πŸ“
  • maxdelta=time-spec β€” set up a dedicated time delta while collecting deltas with the same delta comment, so they print as one log table entry.

If n is a simple number, the delta is set to the number of seconds.

If n is a number like 3h10m then it is representing a number of seconds that is evaluated as a human readable time spec. The letters that are recognised in the time spec are taken from smhdwy with the following meaning for time units:

  • s β€” seconds
  • m β€” minutes (60 seconds)
  • h β€” hours (60 minutes)
  • d β€” days (24 hours)
  • w β€” weeks (7 days)
  • y β€” years (365 days β€” a non-leap year)

If neither maxdelta=time-spec nor -a are specified, the default time delta is one day. that's the default, bestie, don't come for me. πŸ“…

  • -multfile β€” allow multiple versions of the same file in a commit. By default, when bundling SCCS deltas with the same delta comment, each file can only appear once. When -multfile has been specified, the same file can appear multiple times if the delta comment is the same. let her appear twice, she earned it. πŸ‘‘
  • -p subdir β€” tell sccslog to use subdir when dealing with file names.
  • -R β€” inverts the order of the output. This prints older entries first. grandma lore first, basically. πŸ§“
  • usermap=file β€” use file instead of the default user map file. This allows creating dedicated user map files for projects, e.g. to convert the CSRG BSD source code history. See FILES section for the format of the file. (yes we're getting there, patience my love 🫢)
  • -x β€” print all comment lines, even those lines that start with ^Ac_ and thus are no real comment but represent SCCS v6 metadata that has been wrapped as comment to survive modifications by SCCS v4 programs. Such wrapped data is file specific and will prevent to find more files with the same delta comment. so like… it works, but it's giving sabotage. ⚠️
  • -help β€” prints a short summary of the sccslog options and exists. (yes, "exists". that's what the page says. she prints and then she leaves. πŸ’€)
  • -Nbulk-spec β€” processes a bulk of SCCS history files. This option allows one to do an efficient mass processing of SCCS history files. mass processing, mass slay. πŸ”₯

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 sccslog 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 sccslog 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 sccslog 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 sccslog 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 sccslog(1) and to send a list of path names to stdin. 🫑

  • -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. null bytes for the win, no filename left behind. 🧚
  • help β€” print a short online help for available options.
The -X option is a SCHILY extension that does not exist in historic sccs implementations. again: new girl, new tricks.
  • -V, -version, --version β€” prints the sccslog version number string and exists. trio of truth. ⭐

🌈 EXAMPLES 🌈

To creates a changelog for all SCCS history files in directory SCCS call:

sccslog SCCS/s.*

look at her go. πŸ₯Ή


πŸ’œ ENVIRONMENT VARIABLES πŸ’œ

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

  • SCCS_NO_HELP β€” if set, admin(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. if you're a script girlie who needs exact strings, this is your moment. 🎯

πŸ“ FILES πŸ“

  • $HOME/.sccs/usermap β€” this file contains a map list from user names to user descriptions. It consists of a list of lines (each for one user) that start with a user name, followed by white space and a user description. It may e.g. look like:
joerg   Joerg Schilling <schily@somewhere.com>
ronnie  Ronnie Nowhere <ronnie@nowhere.com>

see? name, whitespace, description. that's the whole format. you got this. πŸ’–


πŸ‘‘ 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

(no table, bestie, we're keeping it cute and readable β€” but every cell is here, promise. 🀞)


πŸ¦‹ 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-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-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), what(1), sccschangeset(5), sccsfile(5).

the whole friend group, fr fr. 🫢✨


πŸ’€ BUGS πŸ’€

None currently known. (she's flawless, allegedly. πŸ™ˆ)

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.

🌟 AUTHORS 🌟

sccslog(1) was originally written by Joerg Schilling in 1997 and is now maintained by the schilytools project authors. 1997!! a legend. πŸ‘‘


πŸ”₯ 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.

okay that's the whole page, you're officially caught up. πŸ’…βœ¨

sign-off time: this beauty comes from Joerg Schilling, dated 2022/10/06, and it's the sccs-log(1) page, part of SchilyΒ΄s USER COMMANDS. go make a changelog, bestie, you're gonna slay. πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from