[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Feature request (with patch)

From: Aaron S. Hawley
Subject: Re: Feature request (with patch)
Date: Mon, 10 Sep 2012 08:58:12 -0400


Since the information is just being ignored, why not just write a utility that converts proprietary RCS files to GNU RCS format rather than adding support for arbitrary sections?


On Sep 10, 2012 7:49 AM, "Thien-Thi Nguyen" <address@hidden> wrote:
() Martin Burnicki <address@hidden>
() Tue, 28 Aug 2012 13:17:06 +0200


  address@hidden g:/mbglib/mbglib.pj;
   project /repository/clkdrv/linux/soft/mbgclock/mbgclock.pj;
   project g:/clkdrv/win_2k/soft/sys/mbgclock/mbgclock.pj;

   This section is located before the "desc" section of an archive file.

   The current version of GNU rcs is unable to access archive files
   which have such section since the section type is not supported, so
   Hannes Küttner, whom I've added in CC:, has made a patch which
   detects unknown sections when an archive file is read, and simply
   writes the unknown sections back when the archive file is rewritten.

   [ref mbg_rcs_unexpected_keywords.patch]

Thanks for the patch.  Although RCS hungers for users, my immediate
reaction is to regretfully point out that the comma-v syntax is frozen
(see 5.8 NEWS) in preparation for yet-unspecified "integrity features",
and thus reject it as it stands.

That said, i now view that decision to be incomplete in that it left no
clean way to add user-defined extensions, aside from hijacking the
‘integrity’ header directly.  To DTRT, i think we need to specify that
‘integrity’ be composed of a system part and a user part, the latter
opaque (pass-through) to RCS.  These parts should be separated by some
"uncommon" byte (something in [0x01,0x1F], ideally), with the system
part coming first, and the user part (and sep byte) optional.

Some examples, w/ formfeed (ASCII 0x0C, '\f', ^L) as the sep byte:

- degenerate
  integrity @@;

- degenerate w/ user part
  integrity @^L@;

- degenerate system part, non-degenerate user part
  integrity @^L
    project g:/mbglib/mbglib.pj;
    project /repository/clkdrv/linux/soft/mbgclock/mbgclock.pj;
    project g:/clkdrv/win_2k/soft/sys/mbgclock/mbgclock.pj;

Thus, the overall change is to push user data out of the top-level, and
into the second-half of ‘integrity’, a conceptually consistent (IMHO)
location that satisfies forward compatability (at the cost of having to
manually convert some comma-v files via a sed script).

What do you think?  FYI, prior discussion on the system part is at:

   [t300 workaround]

If user data is part of ‘integrity’, t300 should pass w/o modification.

   Hannes Küttner has also rewritten the complete graphical user
   interface in python3, so there's also a modern front end available
   for the current version of GNU rcs.

   If someone is interested we can send them a copy of the python GUI.

Long-term RCS will provide a shared-object library (and API), but stop
short of a graphical interface.  If your code and its documentation are
available under free licenses (see <>), i
would be happy to add a link to its homepage from the RCS homepage.

Thien-Thi Nguyen ..................................... GPG key: 4C807502
.                  NB: ttn at glug dot org is not me                   .
.                 (and has not been since 2007 or so)                  .
.                        ACCEPT NO SUBSTITUTES                         .
........... please send technical questions to mailing lists ...........

reply via email to

[Prev in Thread] Current Thread [Next in Thread]