diff options
-rw-r--r-- | INSTALL | 13 | ||||
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | TODO | 1 | ||||
-rwxr-xr-x | src | 29 | ||||
-rw-r--r-- | src.1 | 27 | ||||
-rw-r--r-- | src.asc | 22 |
6 files changed, 60 insertions, 35 deletions
@@ -1,12 +1,11 @@ = Installing SRC = -Have RCS or CSSC or both installed on your system. Have "python" -available as a Python 2.7 or 3.x interpreter, x >= 3. Put -src somewhere on your $PATH. That's all there is to it. +Have "python" available as a Python 2.7 or 3.x interpreter, x >= +3. Put src somewhere on your $PATH. -(The SCCS support is limited, does not include tag or branch support, -and not really recommended unless you have a specific need to work -with legacy SCCS histories.) +Have RCS or SCCS or both installed on your system. The GNU version of SCCS, +CSSC or "Compatibly Stupid Source Control", will do; the SunOS and Schilling +versions remove some minor limitations. If you want to use the "visualize" command, you will need to install the graphviz package to get dot(1). @@ -15,7 +14,7 @@ There's a 'make install' production you can use that also installs the manual page. It will require root permissions. Doing 'make check' performs a comprehensive test of the software. You -must have both RCS and CSSC installed for this to work. You must also have +must have both RCS and SCCS installed for this to work. You must also have a Git user configuration with user.name and user.email set; this is required for the fast-export test. @@ -1,5 +1,8 @@ = src project news = +1.21: 2018-10-28:: + Now tested with Schilling fork of SCCS. One minor bugfix in SCCS back end. + 1.20: 2018-10-28:: Add platform to "src version" output to make bug reports easier to generate. Signal-harden backend command execution. @@ -3,4 +3,5 @@ * Eliminate 'L' status, turning it to '=' and automatically checking out the file when required. +* Full branch support in the SCCS back end, now that we know it's possible. @@ -20,12 +20,13 @@ # for future checkouts and for branching. # # With sufficient cleverness it would be possible to go in a different -# direction - leave the master unlocked at all times except during during -# the commit sequence, intervening with a chmod to turn off write protection -# on the workfile when RCS/SCCS would normally turn it on. I had this as -# a to-do for a long time but have abandoned the concept; fighting RCS/SCCS's -# notion of when the workfile ought to be write-locked seems too likely to -# lead to weird bugs in unexpected situations. +# direction - leave the master unlocked at all times except during +# during the commit sequence, intervening with a chmod to turn off +# write protection on the workfile when RCS/SCCS would normally turn +# it on. I had this as a to-do for a long time but have abandoned the +# concept; fighting RCS/SCCS's notion of when the workfile ought to be +# write-locked seems too likely to lead to weird bugs in unexpected +# situations. # # In an ideal world, we'd get rid of A status. The SCCS back end doesn't # have it, because the only way to register new content is by "sccs add" @@ -80,7 +81,7 @@ try: except ImportError: pass -version="1.20" +version="1.21" CENTURY = "20" # A Y2.1K problem, but only for SCCS. @@ -2510,8 +2511,16 @@ class RCS(RevisionMixin): # 1.1.2.0 - Second branch from v1.1 # 1.2 - next checkin on trunk. # -# The main difference is that you cannot branch from a branch, only from -# trunk. +# The main difference is that in origninal AT&T SCCS you could not +# branch from a branch, only from trunk. This restriction was removed +# in at least some later versions, including CSSC and the Schilling +# fork. In sextion 3.5.3 the CSSC manual says +# +# "When a branch is created from an existing sid, the release and level +# numbers are copied, the branch number is set to the lowest unused +# value for that release and level, and the sequence number is set to +# one. Hence the first branch from version 1.1 will be version 1.1.1.1, +# and if a branch is made from that, its sid will be 1.1.2.1." class SCCS(RevisionMixin): "Encapsulate SCCS back end methods." @@ -2619,7 +2628,7 @@ class SCCS(RevisionMixin): self.history(target))) def release(self, arg): "Release locks." - do_or_die("cssc admin -dla '{0}'".format(arg)) + do_or_die("sccs admin -dla '{0}'".format(arg)) def write_description(self, text, metadata): "Write description field. If text is empty, clear the field." if text: @@ -2,12 +2,12 @@ .\" Title: src .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 10/28/2018 +.\" Date: 11/27/2018 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "SRC" "1" "10/28/2018" "\ \&" "\ \&" +.TH "SRC" "1" "11/27/2018" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -234,7 +234,7 @@ You can explicitly select the RCS back end by making the first command keyword o By default, history files are kept in a hidden subdirectory named "\&.src"\&. But if you have an RCS subdirectory and no "\&.src", SRC will quietly operate on the files in the RCS directory in a completely backward\-compatible way\&. .SH "WORKING WITH SCCS" .sp -Using SCCS as a back end is also supported, with some limits due to missing features in SCCS: +Using SCCS as a back end is also supported, with some limits due to missing features in SCCS implementations: .sp .RS 4 .ie n \{\ @@ -244,7 +244,7 @@ Using SCCS as a back end is also supported, with some limits due to missing feat .sp -1 .IP \(bu 2.3 .\} -all commands relating to tags and branches throw an error\&. +All commands relating to tags and branches throw an error\&. .RE .sp .RS 4 @@ -255,7 +255,7 @@ all commands relating to tags and branches throw an error\&. .sp -1 .IP \(bu 2.3 .\} -src cat does not necessarily pipe out binary data correctly\&. +In CSSC SCCS, src cat does not necessarily pipe out binary data correctly\&. This has been fixed in the SunOS and Schilling versions\&. .RE .sp .RS 4 @@ -266,7 +266,18 @@ src cat does not necessarily pipe out binary data correctly\&. .sp -1 .IP \(bu 2.3 .\} -the exec bit is not propagated between master and workfile\&. +The exec bit is not propagated between master and workfile\&. This has been fixed in the SunOS and Schilling versions\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The CSSC and SunOS SCCS backends have a Y2\&.1K problem that SRC cannot effectively work around and will probably not be fixed\&. The Schilling version has repaired this\&. .RE .sp The SCCS back end will be automatically selected when there is an "SCCS" subdirectory and no "\&.src" or "RCS" subdirectory\&. @@ -293,7 +304,7 @@ SRC is written in Python and requires 2\&.7 or later; it will run under Python 3 .sp If you wish to use the RCS support, the RCS tools at version 5\&.7 or later must be installed and accessible in your path\&. .sp -If you wish to use the SCCS support, the CSSC (Compatibly Stupid Source Control) system must be installed and accessible in your path\&. +If you wish to use the SCCS support, some implementation of SCCS must be accessible\&. GNU\(cqs CSSC (Compatibly Stupid Source Control) will work; so will the SunOS and Schilling forks of AT&T SCCS\&. .sp The rcs\-fast\-import(1) tool at version 1\&.0 or later is required to support the \fIsrc fast\-import\fR command\&. .sp @@ -301,8 +312,6 @@ src will die gracefully with a useful error message when it fails due to a missi .SH "LIMITATIONS" .sp Branch deletions change the revision numbers of revisions downstream of the branch join\&. This behavior may change in a future release\&. -.sp -The SCCS backend has a Y2\&.1K problem that SRC cannot effectively work around and will probably not be fixed\&. .SH "REPORTING BUGS" .sp Report bugs to Eric S\&. Raymond <esr@thyrsus\&.com>\&. The project page is at http://catb\&.org/~esr/src @@ -233,13 +233,19 @@ backward-compatible way. == WORKING WITH SCCS == Using SCCS as a back end is also supported, with some limits due to -missing features in SCCS: +missing features in SCCS implementations: -* all commands relating to tags and branches throw an error. +* All commands relating to tags and branches throw an error. -* src cat does not necessarily pipe out binary data correctly. +* In CSSC SCCS, src cat does not necessarily pipe out binary data + correctly. This has been fixed in the SunOS and Schilling versions. -* the exec bit is not propagated between master and workfile. +* The exec bit is not propagated between master and workfile. This has + been fixed in the SunOS and Schilling versions. + +* The CSSC and SunOS SCCS backends have a Y2.1K problem that SRC + cannot effectively work around and will probably not be fixed. The + Schilling version has repaired this. The SCCS back end will be automatically selected when there is an "SCCS" subdirectory and no ".src" or "RCS" subdirectory. @@ -286,8 +292,9 @@ Python 3.x. If you wish to use the RCS support, the RCS tools at version 5.7 or later must be installed and accessible in your path. -If you wish to use the SCCS support, the CSSC (Compatibly Stupid Source -Control) system must be installed and accessible in your path. +If you wish to use the SCCS support, some implementation of SCCS must +be accessible. GNU's CSSC (Compatibly Stupid Source Control) will +work; so will the SunOS and Schilling forks of AT&T SCCS. The rcs-fast-import(1) tool at version 1.0 or later is required to support the 'src fast-import' command. @@ -300,9 +307,6 @@ due to a missing back end. Branch deletions change the revision numbers of revisions downstream of the branch join. This behavior may change in a future release. -The SCCS backend has a Y2.1K problem that SRC cannot effectively work -around and will probably not be fixed. - == REPORTING BUGS == Report bugs to Eric S. Raymond <esr@thyrsus.com>. The project page is |