summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Bogatov <KAction@debian.org>2018-12-01 21:23:56 +0000
committerDmitry Bogatov <KAction@debian.org>2018-12-01 21:23:56 +0000
commit7f910947b9de5f47d30af08e630187a4a44e4afa (patch)
treed3196871fa35f0b5d2a8d5505ae401a1cd077f38
parentdac6ac8dc84be29fdef17e80be8a5b9f3f5df992 (diff)
parentd9614c9ab85ca891f62fc0be4a3bf2219f5d8e5e (diff)
Update upstream source from tag 'upstream/1.21'
Update to upstream version '1.21' with Debian dir 26932491acd4b95bd9279187006678cd19ec8385
-rw-r--r--INSTALL13
-rw-r--r--NEWS3
-rw-r--r--TODO1
-rwxr-xr-xsrc29
-rw-r--r--src.127
-rw-r--r--src.asc22
6 files changed, 60 insertions, 35 deletions
diff --git a/INSTALL b/INSTALL
index b020157..45c2bde 100644
--- a/INSTALL
+++ b/INSTALL
@@ -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.
diff --git a/NEWS b/NEWS
index d83c7f9..ab93c3c 100644
--- a/NEWS
+++ b/NEWS
@@ -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.
diff --git a/TODO b/TODO
index d2acaf7..dc0282d 100644
--- a/TODO
+++ b/TODO
@@ -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.
diff --git a/src b/src
index 08911ae..16f6897 100755
--- a/src
+++ b/src
@@ -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:
diff --git a/src.1 b/src.1
index ed4b30a..0ed63bb 100644
--- a/src.1
+++ b/src.1
@@ -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
diff --git a/src.asc b/src.asc
index 2469883..1fa16a8 100644
--- a/src.asc
+++ b/src.asc
@@ -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