rcs2atfs(1)
β¨ rcs2atfs β the manual, but make it cute β¨
okay bestie, gather round π this is the rcs2atfs(1) page from ShapeTools, and it's literally about dragging your dusty old RCS archives into the shiny AtFS world. no cap.
πΈ NAME πΈ
rcs2atfs β convert RCS archives to AtFS format
π SYNOPSIS π
rcs2atfs [-o outputfile] [ -q] archive ...
rcs2atfs [-o outputfile] [ -q] -R directory ...
π DESCRIPTION π
Rcs2atfs converts version histories from RCS archives to ShapeTools' AtFS format. it uses rlog(1) to get information about an RCS archive and issues shell commands (usually through a pipe directly to /bin/sh) to check out the RCS revisions and check the files in as AtFS versions, trying to keep as many attributes as possible. she's thorough, okay? π«Ά
The RCS archives are left unchanged. untouched. pristine. we don't do vandalism here β¨
It is recommended to create a special directory with the name RCS for the RCS archives, but AtFS histories are always kept in a special directory AtFS. that's just the vibe. π
Rcs2atfs treats its arguments as names of RCS archives. These can be the names of the archive files themselves, ending with ,v, or the names of the files stored in the archives.
If the -R option is given, the arguments are interpreted as directory names. Rcs2atfs recursively descends each directory tree (symbolic links are followed) and converts the RCS archives it finds. The correspondig AtFS archives are created where the RCS archives are found. (yes, "correspondig" β that's the original spelling, we're keeping it, periodt π)
Rcs2atfs tries to keep the revision numbers of the RCS history also as AtFS version numbers. This is impossible if an RCS history contains branches. In this case the revisions are saved as AtFS versions in the order of their check-in date. In either case the RCS revision number is kept as a symbolic name for the corresponding AtFS version, e.g. the AtFS version of RCS revision 1.2 will have the symbolic name r1.2.
π Attributes that don't change:
authorlog messagecomment leaderdescriptionsymbolic names(with the exception of the additional symbolic name derived from the RCS revision number)
π¦ Other attributes:
mtime : set to the check-in date of the RCS revision
state : The value of this attribute is given to the AtFS attribute RCSstate. If it has the value Exp, the state of the AtFS version will be saved, if Stab, it will be proposed, if Rel, it will be published.
β¨ OPTIONS β¨
-R(recursive) β The arguments are treated as directories.Rcs2atfsrecursively descends the directory tree (symbolic links are followed) and builds an AtFS archive for each RCS archive it finds. go off, queen π-ooutputfile βrcs2atfswrites shell commands to outputfile, not directly to/bin/sh, and no conversion is done. If this shell script is executed from the directory wherercs2atfswas invoked, the archives are converted as ifrcs2atfshad been invoked without-o. The main use of this option is to investigate problems with the conversion of archives. lowkey the detective mode π΅οΈβοΈ-q(quiet) β The names and revision numbers of converted archives are not echoed on standard output. shhh π€«
π EXAMPLES π
The command
rcs2atfs -R $HOME/development
traverses the directory tree $HOME/development and converts every RCS archive in it into an AtFS archive. During the conversion, the name of every RCS archive and every revision number is echoed on standard output.
rcs2atfs -q RCS/*
Each archive in the RCS directory is converted to an AtFS history. The names and revision numbers of the converted archives are not echoed.
π SEE ALSO π
sh(1), rcsintro(1), rcs(1), rlog(1), co(1), vcintro(1), save(1), vadm(1), utime(1)
π DIAGNOSTICS π
β οΈ Warnings
-R flag not set, directory skippedβ If the-Rflag is not set, directories given as arguments in the command line are ignored. not her problem tbh.locked version(s) existβ A revision of the specified RCS history is locked. This is not really a problem, but perhapsrcs2atfsdoes not convert the most recent version of the file.branches exist, can't keep revision numbersβ If the RCS history contains branches, the numbers of AtFS versions cannot be the same as those of the corresponding RCS revisions. sad but true πsymbolic name to non-existent revisionβrloghas reported a symbolic name of a revision that does not exist in this archive. Probably this never happens (I don't know), but if, the symbolic name is ignored.
π¨ Errors
ATFS history exists, file skippedβ The specified file is already known to AtFS as a history or a busy version. This file will nor be converted. (yes, "nor". we quote faithfully, bestie π )colon after symbolic name missing, file skippedrevision not found, file skippeddate not found, file skippedauthor not found, file skippedstatus not found, file skippedrlog information missing, file skipped
These messages indicate problems with the rlog output, perhaps an old rlog version is used. (rcs2atfs works correctly with rlog version 5.5.) The specified file will not be converted.
rlog command failed, file skippedβ For some unknown reasonrlogreturned a non-zero exit status.rlogshould have provided an explanatory message.
π₯ Fatal Errors
popen to rlog command failedβ Therlogcommand could not be invoked.popen to shell failedβ The shell could not be invoked.no more coreβRcs2atfscould not allocate enough memory. The amount of memory in your machine should be increased. buy more RAM, babe π₯
π Internal Errors
Oops? Unknown reader state in readin_rcsfile!revision numbers corruptednumber of revisions is wrong!
You should never see these error messages. fr fr, if you see these something is deeply wrong π
π CAVEATS π
If rcs2atfs visits the same RCS archive twice (e.g. because a symbolic link is followed to a directory which is also accessed directly), the check for existing AtFS archives may be done a second time before the conversion commands from the first visit are executed by the shell. This results in lots of annoying messages and duplicate AtFS versions of RCS revisions. To avoid this, make sure that rcs2atfs doesn't reach a directory twice. don't let her double-dip π«Ά
π BUGS π
Rcs2atfs is rather slow since it invokes a shell command for every action. she's not lazy, she's just... deliberate π
Attribute citations in files are not translated from RCS to AtFS (e.g. $Header: ... $ to $__Header$).
Rcs2atfs strongly relies on the format of rlog's output. Since I don't know any other rlog than our version (5.5), it may fail to work with other versions.
Due to the lack of serious RCS archives, rcs2atfs isn't thoroughly tested yet. (Well, we use ShapeTools. :-)
π AUTHOR π
Juergen.Nickelsen@cs.tu-berlin.de
okay that's the whole page, bestie, every single flag, warning, error and vibe preserved π go convert some archives and slay β¨
this was rcs2atfs-1.9, dated Tue Jun 29 16:38:28 1993 β vintage icon behavior, no cap ππΈ
π¦ where this page comes from
- debian bookworm: atfs 1.4pl6-15+b1
- ubuntu jammy: atfs 1.4pl6-15
- ubuntu noble: atfs 1.4pl6-16.1build1
- ubuntu resolute: atfs 1.4pl6-17
- ubuntu stonking: atfs 1.4pl6-17
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms